Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postfix/src/tls/   (Postfix Mailserver Version 3.11©)  Datei vom 27.8.2024 mit Größe 3 kB image not shown  

Quelle  tlsrpt_wrapper.h

  Sprache: C
 

#ifndef _TLSRPT_WRAPPER_INCLUDED_
#define _TLSRPT_WRAPPER_INCLUDED_

/*++
/* NAME
/* tlsrpt_wrapper 3h
/* SUMMARY
/* TLSRPT support for the SMTP and TLS protocol engines
/* SYNOPSIS
/* #include <tlsrpt_wrapper.h>
/* DESCRIPTION
/* .nf

 /*
  * System library.
  */

#if defined(USE_TLS)

#if defined(USE_TLSRPT)

#include <tlsrpt.h>

 /*
  * External interface, with convenient setters for each SMTP protocol engine
  * stage. Many functions have multiple arguments of the same type. Include
  * parameter names in function prototypes here, and in call sites include
  * comments before parameter values, to prepare for future clang-tidy
  * bugprone-argument-comment checks.
  */

typedef struct TLSRPT_WRAPPER TLSRPT_WRAPPER;

extern TLSRPT_WRAPPER *trw_create(const char *rpt_socket_name,
              const char *rpt_policy_domain,
              const char *rpt_policy_string,
              int skip_reused_hs);
extern void trw_free(TLSRPT_WRAPPER *trw);
extern void trw_set_tls_policy(TLSRPT_WRAPPER *trw,
                  tlsrpt_policy_type_t tls_policy_type,
                const char *const * tls_policy_strings,
                  const char *tls_policy_domain,
               const char *const * mx_policy_patterns);
extern void trw_set_tcp_connection(TLSRPT_WRAPPER *trw,
               const char *snd_mta_addr,
               const char *rcv_mta_name,
               const char *rcv_mta_addr);
extern void trw_set_ehlo_resp(TLSRPT_WRAPPER *trw,
                 const char *rcv_mta_ehlo);
extern int trw_report_failure(TLSRPT_WRAPPER *trw,
                 tlsrpt_failure_t policy_failure,
                 const char *additional_info,
                 const char *failure_reason);
extern int trw_report_success(TLSRPT_WRAPPER *trw);
extern int trw_is_reported(const TLSRPT_WRAPPER *trw);
extern int trw_is_skip_reused_hs(const TLSRPT_WRAPPER *trw);

 /*
  * The internals declarations are also needed for functions that transmit
  * and receive TLSRPT_WRAPPER objects.
  */

#ifdef TLSRPT_WRAPPER_INTERNAL

 /*
  * Utility library.
  */

#include <argv.h>

struct TLSRPT_WRAPPER {
    /* Set with trw_create(). */
    char   *rpt_socket_name;
    char   *rpt_policy_domain;
    char   *rpt_policy_string;
    int     skip_reused_hs;
    /* Set with trw_set_policy(). */
    tlsrpt_policy_type_t tls_policy_type;
    ARGV   *tls_policy_strings;
    char   *tls_policy_domain;
    ARGV   *mx_host_patterns;
    /* Set with trw_set_tcp_connection(). */
    char   *snd_mta_addr;
    char   *rcv_mta_name;
    char   *rcv_mta_addr;
    /* Set with trw_set_ehlo_resp(). */
    char   *rcv_mta_ehlo;
    int     flags;
};

#define TRW_FLAG_HAVE_TLS_POLICY (1<<0)
#define TRW_FLAG_HAVE_TCP_CONN (1<<1)
#define TRW_FLAG_HAVE_EHLO_RESP (1<<2)
#define TRW_FLAG_REPORTED (1<<3)

#define TRW_RPT_SOCKET_NAME "rpt_socket_name"
#define TRW_RPT_POLICY_DOMAIN "rpt_policy_domain"
#define TRW_RPT_POLICY_STRING "rpt_policy_string"
#define TRW_SKIP_REUSED_HS "skip_reused_hs"
#define TRW_TLS_POLICY_TYPE "tls_policy_type"
#define TRW_TLS_POLICY_STRINGS "tls_policy_strings" /* XXX Not checked */
#define TRW_TLS_POLICY_DOMAIN "tls_policy_domain"
#define TRW_MX_HOST_PATTERNS "mx_host_patterns" /* XXX Not checked */
#define TRW_SRC_MTA_ADDR "snd_mta_addr"
#define TRW_DST_MTA_NAME "rcv_mta_name"
#define TRW_DST_MTA_ADDR "rcv_mta_addr"
#define TRW_DST_MTA_EHLO "rcv_mta_ehlo" /* Optional */
#define TRW_FLAGS  "flags"

#endif     /* TLSRPT_WRAPPER_INTERNAL */

extern tlsrpt_policy_type_t convert_tlsrpt_policy_type(const char *policy_type);
extern tlsrpt_failure_t convert_tlsrpt_policy_failure(const char *policy_failure);

#endif     /* USE_TLSRPT */

extern int valid_tlsrpt_policy_type(const char *policy_type);
extern int valid_tlsrpt_policy_failure(const char *policy_failure);

#endif     /* USE_TLS */

/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/*--*/


#endif     /* _TLSRPT_WRAPPER_INCLUDED_ */

Messung V0.5 in Prozent
C=83 H=96 G=89

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.