summaryrefslogtreecommitdiff
path: root/vchat-ssl.h
blob: 12d5fdb0797e3c0772b2371347a31edf10eec8c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

/* types */

typedef int (*vc_x509verify_cb_t)(int, X509_STORE_CTX *);
typedef int (*vc_askpass_cb_t)(char *, int, int, void *);
typedef struct {
   char                 *cafile;
   char                 *capath;
   char                 *crlfile;
   vc_x509verify_cb_t   callback;
   vc_askpass_cb_t      askpass_callback;
   STACK_OF(X509)       *certs;
   STACK_OF(X509_CRL)   *crls;
   char                 *use_certfile;
   STACK_OF(X509)       *use_certs;
   char                 *use_keyfile;
   EVP_PKEY             *use_key;
   int                  flags;
} vc_x509store_t;

/* prototypes */

int  vc_connect_ssl(BIO **conn, vc_x509store_t * );
SSL_CTX * vc_create_sslctx( vc_x509store_t *);
void vc_init_x509store(vc_x509store_t *);
void vc_cleanup_x509store(vc_x509store_t *);
void vc_x509store_setcafile(vc_x509store_t *, char *); 
void vc_x509store_setcapath(vc_x509store_t *, char *); 
void vc_x509store_setcrlfile(vc_x509store_t *, char *); 
void vc_x509store_setkeyfile(vc_x509store_t *, char *); 
void vc_x509store_setcertfile(vc_x509store_t *, char *); 
void vc_x509store_addcert(vc_x509store_t *, X509 *);
void vc_x509store_setcb(vc_x509store_t *, vc_x509verify_cb_t);
void vc_x509store_set_pkeycb(vc_x509store_t *, vc_askpass_cb_t); 
void vc_x509store_setflags(vc_x509store_t *, int);
void vc_x509store_clearflags(vc_x509store_t *, int);
int vc_verify_callback(int, X509_STORE_CTX *);
X509_STORE * vc_x509store_create(vc_x509store_t *);
char *vc_ssl_version(char *, int);

#define VC_X509S_NODEF_CAFILE                      0x01
#define VC_X509S_NODEF_CAPATH                      0x02
#define VC_X509S_USE_CERTIFICATE                   0x04
#define VC_X509S_SSL_VERIFY_NONE                   0x10
#define VC_X509S_SSL_VERIFY_PEER                   0x20
#define VC_X509S_SSL_VERIFY_FAIL_IF_NO_PEER_CERT   0x40
#define VC_X509S_SSL_VERIFY_CLIENT_ONCE            0x80
#define VC_X509S_SSL_VERIFY_MASK                   0xF0