Home | History | Annotate | Line # | Download | only in smtp
      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