1 /* $NetBSD: smtp_reqtls_policy.h,v 1.2 2026/05/09 18:49:20 christos Exp $ */ 2 3 #ifndef _SMTP_REQTLS_POLICY_INCLUDED_ 4 #define _SMTP_REQTLS_POLICY_INCLUDED_ 5 6 /*++ 7 /* NAME 8 /* smtp_reqtls_policy 3h 9 /* SUMMARY 10 /* requiretls per-mx policy 11 /* SYNOPSIS 12 /* #include <smtp_reqtls_policy.h> 13 /* DESCRIPTION 14 /* .nf 15 16 /* 17 * External interface. 18 */ 19 typedef struct SMTP_REQTLS_POLICY SMTP_REQTLS_POLICY; 20 21 extern SMTP_REQTLS_POLICY *smtp_reqtls_policy_parse(const char *, const char *); 22 extern int smtp_reqtls_policy_eval(SMTP_REQTLS_POLICY *, const char *); 23 extern void smtp_reqtls_policy_free(SMTP_REQTLS_POLICY *); 24 25 #define SMTP_REQTLS_POLICY_NAME_ENFORCE "enforce" 26 #define SMTP_REQTLS_POLICY_NAME_OPP_TLS "opportunistic+starttls" 27 #define SMTP_REQTLS_POLICY_NAME_OPPORTUNISTIC "opportunistic" 28 #define SMTP_REQTLS_POLICY_NAME_DISABLE "disable" 29 #define SMTP_REQTLS_POLICY_NAME_ERROR "error" 30 31 #define SMTP_REQTLS_POLICY_NAME_DEFAULT SMTP_REQTLS_POLICY_NAME_ENFORCE 32 33 #define SMTP_REQTLS_POLICY_ACT_ENFORCE 3 34 #define SMTP_REQTLS_POLICY_ACT_OPP_TLS 2 35 #define SMTP_REQTLS_POLICY_ACT_OPPORTUNISTIC 1 36 #define SMTP_REQTLS_POLICY_ACT_DISABLE 0 37 #define SMTP_REQTLS_POLICY_ACT_ERROR (-1) 38 39 #define SMTP_REQTLS_POLICY_ACT_DEFAULT SMTP_REQTLS_POLICY_ACT_ENFORCE 40 41 #define STATE_REQTLS_IS_REQUESTED(var, state) \ 42 SENDOPTS_REQTLS_IS_REQUESTED((var), (state)->request->sendopts) 43 44 #define SENDOPTS_REQTLS_IS_REQUESTED(var, sendopts) \ 45 ((var) && (sendopts) & SOPT_REQUIRETLS_ESMTP) 46 47 #define TLS_REQUIRED_BY_REQTLS_POLICY(reqtls_level) \ 48 ((reqtls_level) >= SMTP_REQTLS_POLICY_ACT_OPP_TLS) 49 50 /* LICENSE 51 /* .ad 52 /* .fi 53 /* The Secure Mailer license must be distributed with this software. 54 /* AUTHOR(S) 55 /* Wietse Venema 56 /* porcupine.org 57 /*--*/ 58 59 #endif 60