summaryrefslogtreecommitdiff
path: root/src/include/ucspitls.h
blob: f0505c71c9872a19fa5250d465422beaaacc70ff (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
#ifndef UCSPITLS_H
#define UCSPITLS_H

#include <openssl/ec.h>
#include <openssl/opensslv.h>
#include <openssl/ssl.h>

#include "stralloc.h"

#define SSL_NAME_LEN           256
#define OPENSSL_VERSION_NUMBER 0x101010100L

#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
  #define ssl_client() (ssl_context(SSLv23_client_method()))
  #define ssl_server() (ssl_context(SSLv23_server_method()))
#else
  #define ssl_client() (ssl_context(TLS_client_method()))
  #define ssl_server() (ssl_context(TLS_server_method()))
#endif

extern int ssl_errno;
int ssl_io(SSL *, int, int, unsigned int);
SSL_CTX *ssl_context(SSL_METHOD *);
int ssl_timeoutconn(SSL *, unsigned int);
int ssl_timeoutaccept(SSL *, unsigned int);
SSL *ssl_new(SSL_CTX *, int);
int ssl_certkey(SSL_CTX *, const char *, const char *, pem_password_cb *);
int ssl_ca(SSL_CTX *, const char *, const char *, int);
int ssl_cca(SSL_CTX *, const char *);
int ssl_ciphers(SSL_CTX *, const char *);
int ssl_verify(SSL *, const char *);
int ssl_params(SSL_CTX *, const char *, int);
int ssl_server_env(SSL *, stralloc *);
int ssl_client_env(SSL *, stralloc *);
char *ssl_error_str(int);

#define ssl_errstr()   (SSL_load_error_strings())
#define ssl_free(ssl)  (SSL_free((ssl)))
#define ssl_close(ssl) (close(SSL_get_fd((ssl))))

#define ssl_pending(ssl)          (SSL_pending((ssl)))
#define ssl_shutdown(ssl)         (SSL_shutdown((ssl)))
#define ssl_shutdown_pending(ssl) (SSL_get_shutdown((ssl)) & SSL_RECEIVED_SHUTDOWN)
#define ssl_shutdown_sent(ssl)    (SSL_get_shutdown((ssl)) & SSL_SENT_SHUTDOWN)

#endif