tls_domain.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef TLS_DOMAIN_H
00034 #define TLS_DOMAIN_H
00035
00036 #include "../str.h"
00037 #include "../ip_addr.h"
00038 #include "tls_config.h"
00039 #include <openssl/ssl.h>
00040
00041
00042
00043
00044 enum tls_domain_type {
00045 TLS_DOMAIN_DEF = (1 << 0),
00046 TLS_DOMAIN_SRV = (1 << 1),
00047 TLS_DOMAIN_CLI = (1 << 2),
00048 TLS_DOMAIN_NAME= (1 << 3)
00049 };
00050
00051
00052
00053
00054 struct tls_domain {
00055 int type;
00056 struct ip_addr addr;
00057 unsigned short port;
00058 SSL_CTX *ctx;
00059 int verify_cert;
00060 int require_client_cert;
00061 char *cert_file;
00062 char *pkey_file;
00063 char *ca_file;
00064 char *ciphers_list;
00065 #ifndef OPENSSL_NO_TLSEXT
00066 char *server_name;
00067 #endif
00068 enum tls_method method;
00069 struct tls_domain *next;
00070 str name;
00071 };
00072
00073 extern struct tls_domain *tls_server_domains;
00074 extern struct tls_domain *tls_client_domains;
00075 extern struct tls_domain *tls_default_server_domain;
00076 extern struct tls_domain *tls_default_client_domain;
00077
00078
00079
00080
00081 struct tls_domain *tls_find_server_domain(struct ip_addr *ip,
00082 unsigned short port);
00083
00084 #ifndef OPENSSL_NO_TLSEXT
00085
00086
00087
00088 struct tls_domain *tls_find_server_domain_server_name(struct ip_addr *ip,
00089 unsigned short port, const char *server_name);
00090 #endif
00091
00092
00093
00094
00095 struct tls_domain *tls_find_client_domain(struct ip_addr *ip,
00096 unsigned short port);
00097
00098
00099
00100
00101 struct tls_domain *tls_find_client_domain_name(str name);
00102
00103
00104
00105
00106 int tls_new_server_domain(struct ip_addr *ip, unsigned short port);
00107
00108
00109
00110
00111 int tls_new_client_domain(struct ip_addr *ip, unsigned short port);
00112
00113
00114
00115
00116 int tls_new_client_domain_name(char *s, int len);
00117
00118
00119
00120
00121
00122 struct tls_domain *tls_new_domain(int type);
00123
00124
00125
00126
00127 void tls_free_domains(void);
00128
00129 #endif