#include <time.h>#include "xyssl/net.h"#include "xyssl/dhm.h"#include "xyssl/rsa.h"#include "xyssl/md5.h"#include "xyssl/sha1.h"#include "xyssl/x509.h"Go to the source code of this file.
Definition in file ssl.h.
| #define SSL_IS_CLIENT 0 |
| #define SSL_IS_SERVER 1 |
| #define SSL_VERIFY_NONE 0 |
| #define XYSSL_ERR_SSL_PEER_CLOSE_NOTIFY -0x9000 |
| typedef struct _ssl_context ssl_context |
| typedef struct _ssl_session ssl_session |
| enum ssl_states |
| void ssl_calc_verify | ( | ssl_context * | ssl, | |
| unsigned char | hash[36] | |||
| ) |
| int ssl_close_notify | ( | ssl_context * | ssl | ) |
| int ssl_derive_keys | ( | ssl_context * | ssl | ) |
| int ssl_fetch_input | ( | ssl_context * | ssl, | |
| int | nb_want | |||
| ) |
| int ssl_flush_output | ( | ssl_context * | ssl | ) |
| void ssl_free | ( | ssl_context * | ssl | ) |
| int ssl_get_bytes_avail | ( | ssl_context * | ssl | ) |
Return the number of data bytes available to read.
| ssl | SSL context |
| char* ssl_get_cipher | ( | ssl_context * | ssl | ) |
Return the name of the current cipher.
| ssl | SSL context |
Referenced by main().
| int ssl_get_verify_result | ( | ssl_context * | ssl | ) |
Return the result of the certificate verification.
| ssl | SSL context |
Referenced by main().
| int ssl_handshake | ( | ssl_context * | ssl | ) |
Perform the SSL handshake.
| ssl | SSL context |
Referenced by main().
| int ssl_handshake_client | ( | ssl_context * | ssl | ) |
| int ssl_handshake_server | ( | ssl_context * | ssl | ) |
| int ssl_init | ( | ssl_context * | ssl | ) |
Initialize an SSL context.
| ssl | SSL context |
Referenced by main(), and ssl_test().
| int ssl_parse_certificate | ( | ssl_context * | ssl | ) |
| int ssl_parse_change_cipher_spec | ( | ssl_context * | ssl | ) |
| int ssl_parse_finished | ( | ssl_context * | ssl | ) |
| int ssl_read | ( | ssl_context * | ssl, | |
| unsigned char * | buf, | |||
| int | len | |||
| ) |
Read at most 'len' application data bytes.
| ssl | SSL context | |
| buf | buffer that will hold the data | |
| len | how many bytes must be read |
Referenced by main(), and ssl_test().
| int ssl_read_record | ( | ssl_context * | ssl | ) |
| void ssl_set_authmode | ( | ssl_context * | ssl, | |
| int | authmode | |||
| ) |
Set the certificate verification mode.
| ssl | SSL context | |
| mode | can be: |
SSL_VERIFY_OPTIONAL: peer certificate is checked, however the handshake continues even if verification failed; ssl_get_verify_result() can be called after the handshake is complete.
SSL_VERIFY_REQUIRED: peer *must* present a valid certificate, handshake is aborted if verification failed.
Referenced by main(), and ssl_test().
| void ssl_set_bio | ( | ssl_context * | ssl, | |
| int(*)(void *, unsigned char *, int) | f_recv, | |||
| void * | p_recv, | |||
| int(*)(void *, unsigned char *, int) | f_send, | |||
| void * | p_send | |||
| ) |
Set the underlying BIO read and write callbacks.
| ssl | SSL context | |
| f_recv | read callback | |
| p_recv | read parameter | |
| f_send | write callback | |
| p_send | write parameter |
Referenced by main(), and ssl_test().
| void ssl_set_ca_chain | ( | ssl_context * | ssl, | |
| x509_cert * | ca_chain, | |||
| char * | peer_cn | |||
| ) |
Set the data required to verify peer certificate.
| ssl | SSL context | |
| ca_chain | trusted CA chain | |
| peer_cn | expected peer CommonName (or NULL) |
Referenced by main(), and ssl_test().
| void ssl_set_ciphers | ( | ssl_context * | ssl, | |
| int * | ciphers | |||
| ) |
Set the list of allowed ciphersuites.
| ssl | SSL context | |
| ciphers | 0-terminated list of allowed ciphers |
Referenced by main(), and ssl_test().
| void ssl_set_dbg | ( | ssl_context * | ssl, | |
| void(*)(void *, int, char *) | f_dbg, | |||
| void * | p_dbg | |||
| ) |
Set the debug callback.
| ssl | SSL context | |
| f_dbg | debug function | |
| p_dbg | debug parameter |
Referenced by main(), and ssl_test().
| int ssl_set_dh_param | ( | ssl_context * | ssl, | |
| char * | dhm_P, | |||
| char * | dhm_G | |||
| ) |
Set the Diffie-Hellman public P and G values, read as hexadecimal strings (server-side only).
| ssl | SSL context | |
| dhm_P | Diffie-Hellman-Merkle modulus | |
| dhm_G | Diffie-Hellman-Merkle generator |
Referenced by main(), and ssl_test().
| void ssl_set_endpoint | ( | ssl_context * | ssl, | |
| int | endpoint | |||
| ) |
Set the current endpoint type.
| ssl | SSL context | |
| endpoint | must be SSL_IS_CLIENT or SSL_IS_SERVER |
Referenced by main(), and ssl_test().
| int ssl_set_hostname | ( | ssl_context * | ssl, | |
| char * | hostname | |||
| ) |
Set hostname for ServerName TLS Extension.
| ssl | SSL context | |
| hostname | the server hostname |
Referenced by main().
| void ssl_set_own_cert | ( | ssl_context * | ssl, | |
| x509_cert * | own_cert, | |||
| rsa_context * | rsa_key | |||
| ) |
Set own certificate and private key.
| ssl | SSL context | |
| own_cert | own public certificate | |
| rsa_key | own private RSA key |
Referenced by main(), and ssl_test().
| void ssl_set_rng | ( | ssl_context * | ssl, | |
| int(*)(void *) | f_rng, | |||
| void * | p_rng | |||
| ) |
Set the random number generator callback.
| ssl | SSL context | |
| f_rng | RNG function | |
| p_rng | RNG parameter |
Referenced by main(), and ssl_test().
| void ssl_set_scb | ( | ssl_context * | ssl, | |
| int(*)(ssl_context *) | s_get, | |||
| int(*)(ssl_context *) | s_set | |||
| ) |
Set the session callbacks (server-side only).
| ssl | SSL context | |
| s_get | session get callback | |
| s_set | session set callback |
Referenced by main().
| void ssl_set_session | ( | ssl_context * | ssl, | |
| int | resume, | |||
| int | timeout, | |||
| ssl_session * | session | |||
| ) |
Set the session resuming flag, timeout and data.
| ssl | SSL context | |
| resume | if 0 (default), the session will not be resumed | |
| timeout | session timeout in seconds, or 0 (no timeout) | |
| session | session context |
Referenced by main(), and ssl_test().
| int ssl_write | ( | ssl_context * | ssl, | |
| unsigned char * | buf, | |||
| int | len | |||
| ) |
Write exactly 'len' application data bytes.
| ssl | SSL context | |
| buf | buffer holding the data | |
| len | how many bytes must be written |
Referenced by main(), and ssl_test().
| int ssl_write_certificate | ( | ssl_context * | ssl | ) |
| int ssl_write_change_cipher_spec | ( | ssl_context * | ssl | ) |
| int ssl_write_finished | ( | ssl_context * | ssl | ) |
| int ssl_write_record | ( | ssl_context * | ssl | ) |
Referenced by main(), and ssl_test().
1.5.4