/*++ /* NAME /* tls_proxy_context_scan /* SUMMARY /* read TLS session state from stream /* SYNOPSIS /* #include <tls_proxy.h> /* /* int tls_proxy_context_scan(scan_fn, stream, flags, ptr) /* ATTR_SCAN_COMMON_FN scan_fn; /* VSTREAM *stream; /* int flags; /* void *ptr; /* /* void tls_proxy_context_free(tls_context) /* TLS_SESS_STATE *tls_context; /* DESCRIPTION /* tls_proxy_context_scan() reads the public members of a /* TLS_ATTR_STATE structure from the named stream using the /* specified attribute scan routine. tls_proxy_context_scan() /* is meant to be passed as a call-back to attr_scan() as shown /* below. /* /* tls_proxy_context_free() destroys a TLS context object that /* was received with tls_proxy_context_scan(). /* /* TLS_ATTR_STATE *tls_context = 0; /* ... /* ... RECV_ATTR_FUNC(tls_proxy_context_scan, (void *) &tls_context), ... /* ... /* if (tls_context) /* tls_proxy_context_free(tls_context); /* DIAGNOSTICS /* Fatal: out of memory. /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA /* /* Wietse Venema /* Google, Inc. /* 111 8th Avenue /* New York, NY 10011, USA
/*--*/
#ifdef USE_TLS
/* System library. */
#include <sys_defs.h>
/* Utility library */
#include <attr.h> #include <msg.h>
/* TLS library. */
#include <tls.h> #include <tls_proxy.h>
/* tls_proxy_context_scan - receive TLS session state from stream */
/* tls_proxy_context_free - destroy object from tls_proxy_context_receive() */
void tls_proxy_context_free(TLS_SESS_STATE *tls_context)
{ if (tls_context->peer_CN)
myfree(tls_context->peer_CN); if (tls_context->issuer_CN)
myfree(tls_context->issuer_CN); if (tls_context->peer_cert_fprint)
myfree(tls_context->peer_cert_fprint); if (tls_context->peer_pkey_fprint)
myfree(tls_context->peer_pkey_fprint); if (tls_context->protocol)
myfree((void *) tls_context->protocol); if (tls_context->cipher_name)
myfree((void *) tls_context->cipher_name); if (tls_context->kex_name)
myfree((void *) tls_context->kex_name); if (tls_context->kex_curve)
myfree((void *) tls_context->kex_curve); if (tls_context->clnt_sig_name)
myfree((void *) tls_context->clnt_sig_name); if (tls_context->clnt_sig_curve)
myfree((void *) tls_context->clnt_sig_curve); if (tls_context->clnt_sig_dgst)
myfree((void *) tls_context->clnt_sig_dgst); if (tls_context->srvr_sig_name)
myfree((void *) tls_context->srvr_sig_name); if (tls_context->srvr_sig_curve)
myfree((void *) tls_context->srvr_sig_curve); if (tls_context->srvr_sig_dgst)
myfree((void *) tls_context->srvr_sig_dgst); if (tls_context->namaddr)
myfree((void *) tls_context->namaddr);
myfree((void *) tls_context);
}
#endif
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-08-08)
¤
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.