25 #include <proton/import_export.h>
26 #include <proton/type_compat.h>
157 const char *credential_1,
158 const char *credential_2,
159 const char *password);
182 const char *certificate_db);
233 const char *trusted_CAs);
314 const char *session_id);
420 PN_SSL_CERT_SUBJECT_COUNTRY_NAME,
421 PN_SSL_CERT_SUBJECT_STATE_OR_PROVINCE,
422 PN_SSL_CERT_SUBJECT_CITY_OR_LOCALITY,
423 PN_SSL_CERT_SUBJECT_ORGANIZATION_NAME,
424 PN_SSL_CERT_SUBJECT_ORGANIZATION_UNIT,
425 PN_SSL_CERT_SUBJECT_COMMON_NAME
453 size_t fingerprint_length,
bool pn_ssl_get_protocol_name(pn_ssl_t *ssl, char *buffer, size_t size)
Get the name of the SSL protocol that is currently in use.
const char * pn_ssl_get_remote_subject_subfield(pn_ssl_t *ssl0, pn_ssl_cert_subject_subfield field)
Returns a char pointer that contains the value of the sub field of the subject field in the ssl certi...
pn_ssl_mode_t
Determines the type of SSL endpoint.
Definition: ssl.h:90
const char * pn_ssl_get_remote_subject(pn_ssl_t *ssl)
Get the subject from the peers certificate.
int pn_ssl_set_peer_hostname(pn_ssl_t *ssl, const char *hostname)
Set the expected identity of the remote peer.
struct pn_ssl_t pn_ssl_t
Definition: ssl.h:85
int pn_ssl_domain_allow_unsecured_client(pn_ssl_domain_t *domain)
Deprecated - Use pn_transport_require_encryption()
int pn_ssl_get_cert_fingerprint(pn_ssl_t *ssl0, char *fingerprint, size_t fingerprint_length, pn_ssl_hash_alg hash_alg)
Get the fingerprint of the certificate.
int pn_ssl_domain_set_protocols(pn_ssl_domain_t *domain, const char *protocols)
Configure the list of permitted TLS protocols.
int pn_ssl_domain_set_peer_authentication(pn_ssl_domain_t *domain, const pn_ssl_verify_mode_t mode, const char *trusted_CAs)
Configure the level of verification used on the peer certificate.
int pn_ssl_init(pn_ssl_t *ssl, pn_ssl_domain_t *domain, const char *session_id)
Initialize an SSL session.
bool pn_ssl_get_cipher_name(pn_ssl_t *ssl, char *buffer, size_t size)
Get the name of the Cipher that is currently in use.
void pn_ssl_domain_free(pn_ssl_domain_t *domain)
Release an SSL configuration domain.
pn_ssl_resume_status_t pn_ssl_resume_status(pn_ssl_t *ssl)
Check whether the state has been resumed.
pn_ssl_cert_subject_subfield
Enumeration identifying the sub fields of the subject field in the ssl certificate.
Definition: ssl.h:419
int pn_ssl_domain_set_trusted_ca_db(pn_ssl_domain_t *domain, const char *certificate_db)
Configure the set of trusted CA certificates used by this domain to verify peers.
int pn_ssl_domain_set_credentials(pn_ssl_domain_t *domain, const char *credential_1, const char *credential_2, const char *password)
Set the certificate that identifies the local node to the remote.
int pn_ssl_get_peer_hostname(pn_ssl_t *ssl, char *hostname, size_t *bufsize)
Access the configured peer identity.
int pn_ssl_get_ssf(pn_ssl_t *ssl)
Get the SSF (security strength factor) of the Cipher that is currently in use.
pn_ssl_domain_t * pn_ssl_domain(pn_ssl_mode_t mode)
Create an SSL configuration domain.
pn_ssl_t * pn_ssl(pn_transport_t *transport)
Create a new SSL session object associated with a transport.
struct pn_ssl_domain_t pn_ssl_domain_t
API for using SSL with the Transport Layer.
Definition: ssl.h:80
int pn_ssl_domain_set_ciphers(pn_ssl_domain_t *domain, const char *ciphers)
Configure the list of permitted ciphers.
pn_ssl_verify_mode_t
Determines the level of peer validation.
Definition: ssl.h:200
bool pn_ssl_present(void)
Tests for SSL implementation present.
pn_ssl_hash_alg
Enumeration identifying hashing algorithm.
Definition: ssl.h:431
pn_ssl_resume_status_t
Indicates whether an SSL session has been resumed.
Definition: ssl.h:98
@ PN_SSL_MODE_SERVER
Local connection endpoint is an SSL server.
Definition: ssl.h:92
@ PN_SSL_MODE_CLIENT
Local connection endpoint is an SSL client.
Definition: ssl.h:91
@ PN_SSL_VERIFY_PEER_NAME
require valid certificate and matching name
Definition: ssl.h:204
@ PN_SSL_VERIFY_PEER
require peer to provide a valid identifying certificate
Definition: ssl.h:202
@ PN_SSL_VERIFY_NULL
internal use only
Definition: ssl.h:201
@ PN_SSL_ANONYMOUS_PEER
do not require a certificate nor cipher authorization
Definition: ssl.h:203
@ PN_SSL_RESUME_REUSED
Session resumed from previous session.
Definition: ssl.h:101
@ PN_SSL_RESUME_NEW
Session renegotiated - not resumed.
Definition: ssl.h:100
@ PN_SSL_RESUME_UNKNOWN
Session resume state unknown/not supported.
Definition: ssl.h:99
struct pn_transport_t pn_transport_t
A network channel supporting an AMQP connection.
Definition: types.h:435