5.9. ssl
— Secure socket layer¶
SSL/TLS based on mbedTLS. Server side sockets works, but not client side.
Source code: src/inet/ssl.h, src/inet/ssl.c
Test code: tst/inet/ssl/main.c,
Test coverage: src/inet/ssl.c
Example code: examples/ssl/main.c
Functions
-
int
ssl_module_init
(void)¶ Initialize the SSL module. This function must be called before calling any other function in this module.
The module will only be initialized once even if this function is called multiple times.
- Return
- zero(0) or negative error code.
-
int
ssl_context_init
(struct ssl_context_t *self_p, enum ssl_protocol_t protocol)¶ Initialize given SSL context. A SSL context contains settings that lives longer than a socket.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: SSL context to initialize.
-
int
ssl_context_destroy
(struct ssl_context_t *self_p)¶ Destroy given SSL context. The context may not be used after it has been destroyed.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: SSL context to destroy.
-
int
ssl_context_load_cert_chain
(struct ssl_context_t *self_p, const char *cert_p, const char *key_p)¶ Load given certificate chain into given contextx.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: SSL context.self_p
: Certificate to load.self_p
: Optional key to load. May be NULL.
-
int
ssl_socket_open
(struct ssl_socket_t *self_p, struct ssl_context_t *context_p, void *socket_p, enum ssl_socket_mode_t mode)¶ Initialize given SSL socket with given socket and SSL context. Performs the SSL handshake.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: SSL socket to initialize.context_p
: SSL context to execute in.socket_p
: Socket to wrap in the SSL socket.mode
: Server or client side socket mode.
-
int
ssl_socket_close
(struct ssl_socket_t *self_p)¶ Close given SSL socket.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: Opened SSL socket.
-
ssize_t
ssl_socket_write
(struct ssl_socket_t *self_p, const void *buf_p, size_t size)¶ Write data to given SSL socket.
- Return
- Number of written bytes or negative error code.
- Parameters
self_p
: SSL socket.buf_p
: Buffer to send.size
: Numer of bytes to send.
-
ssize_t
ssl_socket_read
(struct ssl_socket_t *self_p, void *buf_p, size_t size)¶ Read data from given SSL socket.
- Return
- Number of read bytes or negative error code.
- Parameters
self_p
: SSL socket.buf_p
: Buffer to read into.size
: Number of bytes to read.
-
ssize_t
ssl_socket_size
(struct ssl_socket_t *self_p)¶ Get the number of input bytes currently stored in the SSL socket.
- Return
- Number of input bytes in the SSL socket.
- Parameters
self_p
: SSL socket.
- struct
- struct