rabbitmq-c
0.8.0
C AMQP Client library for RabbitMQ
|
Go to the source code of this file.
Enumerations | |
enum | amqp_tls_version_t { AMQP_TLSv1 = 1, AMQP_TLSv1_1 = 2, AMQP_TLSv1_2 = 3, AMQP_TLSvLATEST = 0xFFFF } |
Functions | |
amqp_socket_t * | amqp_ssl_socket_new (amqp_connection_state_t state) |
Create a new SSL/TLS socket object. More... | |
int | amqp_ssl_socket_set_cacert (amqp_socket_t *self, const char *cacert) |
Set the CA certificate. More... | |
int | amqp_ssl_socket_set_key (amqp_socket_t *self, const char *cert, const char *key) |
Set the client key. More... | |
int | amqp_ssl_socket_set_key_buffer (amqp_socket_t *self, const char *cert, const void *key, size_t n) |
Set the client key from a buffer. More... | |
void | amqp_ssl_socket_set_verify (amqp_socket_t *self, amqp_boolean_t verify) |
Enable or disable peer verification. More... | |
void | amqp_ssl_socket_set_verify_peer (amqp_socket_t *self, amqp_boolean_t verify) |
Enable or disable peer verification. More... | |
void | amqp_ssl_socket_set_verify_hostname (amqp_socket_t *self, amqp_boolean_t verify) |
Enable or disable hostname verification. More... | |
int | amqp_ssl_socket_set_ssl_versions (amqp_socket_t *self, amqp_tls_version_t min, amqp_tls_version_t max) |
Set min and max TLS versions. More... | |
void | amqp_set_initialize_ssl_library (amqp_boolean_t do_initialize) |
Sets whether rabbitmq-c initializes the underlying SSL library. More... | |
void amqp_set_initialize_ssl_library | ( | amqp_boolean_t | do_initialize | ) |
Sets whether rabbitmq-c initializes the underlying SSL library.
For SSL libraries that require a one-time initialization across a whole program (e.g., OpenSSL) this sets whether or not rabbitmq-c will initialize the SSL library when the first call to amqp_open_socket() is made. You should call this function with do_init = 0 if the underlying SSL library is initialized somewhere else the program.
Failing to initialize or double initialization of the SSL library will result in undefined behavior
By default rabbitmq-c will initialize the underlying SSL library
NOTE: calling this function after the first socket has been opened with amqp_open_socket() will not have any effect.
[in] | do_initialize | If 0 rabbitmq-c will not initialize the SSL library, otherwise rabbitmq-c will initialize the SSL library |
amqp_socket_t* amqp_ssl_socket_new | ( | amqp_connection_state_t | state | ) |
Create a new SSL/TLS socket object.
The returned socket object is owned by the amqp_connection_state_t object and will be destroyed when the state object is destroyed or a new socket object is created.
If the socket object creation fails, the amqp_connection_state_t object will not be changed.
The object returned by this function can be retrieved from the amqp_connection_state_t object later using the amqp_get_socket() function.
Calling this function may result in the underlying SSL library being initialized.
[in,out] | state | The connection object that owns the SSL/TLS socket |
int amqp_ssl_socket_set_cacert | ( | amqp_socket_t * | self, |
const char * | cacert | ||
) |
Set the CA certificate.
[in,out] | self | An SSL/TLS socket object. |
[in] | cacert | Path to the CA cert file in PEM format. |
int amqp_ssl_socket_set_key | ( | amqp_socket_t * | self, |
const char * | cert, | ||
const char * | key | ||
) |
Set the client key.
[in,out] | self | An SSL/TLS socket object. |
[in] | cert | Path to the client certificate in PEM foramt. |
[in] | key | Path to the client key in PEM format. |
int amqp_ssl_socket_set_key_buffer | ( | amqp_socket_t * | self, |
const char * | cert, | ||
const void * | key, | ||
size_t | n | ||
) |
Set the client key from a buffer.
[in,out] | self | An SSL/TLS socket object. |
[in] | cert | Path to the client certificate in PEM foramt. |
[in] | key | A buffer containing client key in PEM format. |
[in] | n | The length of the buffer. |
int amqp_ssl_socket_set_ssl_versions | ( | amqp_socket_t * | self, |
amqp_tls_version_t | min, | ||
amqp_tls_version_t | max | ||
) |
Set min and max TLS versions.
Set the oldest and newest acceptable TLS versions that are acceptable when connecting to the broker. Set min == max to restrict to just that version.
[in,out] | self | An SSL/TLS socket object. |
[in] | min | the minimum acceptable TLS version |
[in] | max | the maxmium acceptable TLS version |
void amqp_ssl_socket_set_verify | ( | amqp_socket_t * | self, |
amqp_boolean_t | verify | ||
) |
Enable or disable peer verification.
If peer verification is enabled then the common name in the server certificate must match the server name. Peer verification is enabled by default.
[in,out] | self | An SSL/TLS socket object. |
[in] | verify | Enable or disable peer verification. |
void amqp_ssl_socket_set_verify_hostname | ( | amqp_socket_t * | self, |
amqp_boolean_t | verify | ||
) |
Enable or disable hostname verification.
Hostname verification checks the broker cert for a CN or SAN that matches the hostname that amqp_socket_open() is presented. Peer verification is controlled by
void amqp_ssl_socket_set_verify_peer | ( | amqp_socket_t * | self, |
amqp_boolean_t | verify | ||
) |
Enable or disable peer verification.
Peer verification validates the certificate chain that is sent by the broker. Hostname validation is controlled by .
[in,out] | self | An SSL/TLS socket object. |
[in] | verify | enable or disable peer validation |