cya_u
Fork of CyaSSL-forEncrypt by
ssl.h@0:5045d2638c29, 2011-02-05 (annotated)
- Committer:
- toddouska
- Date:
- Sat Feb 05 01:09:17 2011 +0000
- Revision:
- 0:5045d2638c29
Beta Version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
toddouska | 0:5045d2638c29 | 1 | /* ssl.h |
toddouska | 0:5045d2638c29 | 2 | * |
toddouska | 0:5045d2638c29 | 3 | * Copyright (C) 2006-2009 Sawtooth Consulting Ltd. |
toddouska | 0:5045d2638c29 | 4 | * |
toddouska | 0:5045d2638c29 | 5 | * This file is part of CyaSSL. |
toddouska | 0:5045d2638c29 | 6 | * |
toddouska | 0:5045d2638c29 | 7 | * CyaSSL is free software; you can redistribute it and/or modify |
toddouska | 0:5045d2638c29 | 8 | * it under the terms of the GNU General Public License as published by |
toddouska | 0:5045d2638c29 | 9 | * the Free Software Foundation; either version 2 of the License, or |
toddouska | 0:5045d2638c29 | 10 | * (at your option) any later version. |
toddouska | 0:5045d2638c29 | 11 | * |
toddouska | 0:5045d2638c29 | 12 | * CyaSSL is distributed in the hope that it will be useful, |
toddouska | 0:5045d2638c29 | 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
toddouska | 0:5045d2638c29 | 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
toddouska | 0:5045d2638c29 | 15 | * GNU General Public License for more details. |
toddouska | 0:5045d2638c29 | 16 | * |
toddouska | 0:5045d2638c29 | 17 | * You should have received a copy of the GNU General Public License |
toddouska | 0:5045d2638c29 | 18 | * along with this program; if not, write to the Free Software |
toddouska | 0:5045d2638c29 | 19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
toddouska | 0:5045d2638c29 | 20 | */ |
toddouska | 0:5045d2638c29 | 21 | |
toddouska | 0:5045d2638c29 | 22 | |
toddouska | 0:5045d2638c29 | 23 | /* ssl.h defines openssl compatibility layer |
toddouska | 0:5045d2638c29 | 24 | * |
toddouska | 0:5045d2638c29 | 25 | */ |
toddouska | 0:5045d2638c29 | 26 | |
toddouska | 0:5045d2638c29 | 27 | |
toddouska | 0:5045d2638c29 | 28 | |
toddouska | 0:5045d2638c29 | 29 | #ifndef CYASSL_OPENSSL_H_ |
toddouska | 0:5045d2638c29 | 30 | #define CYASSL_OPENSSL_H_ |
toddouska | 0:5045d2638c29 | 31 | |
toddouska | 0:5045d2638c29 | 32 | #include "os_settings.h" /* for users not using preprocessor flags */ |
toddouska | 0:5045d2638c29 | 33 | |
toddouska | 0:5045d2638c29 | 34 | #ifndef NO_FILESYTEM |
toddouska | 0:5045d2638c29 | 35 | #include <stdio.h> /* ERR_print fp */ |
toddouska | 0:5045d2638c29 | 36 | #endif |
toddouska | 0:5045d2638c29 | 37 | |
toddouska | 0:5045d2638c29 | 38 | #ifdef YASSL_PREFIX |
toddouska | 0:5045d2638c29 | 39 | #include "prefix_ssl.h" |
toddouska | 0:5045d2638c29 | 40 | #endif |
toddouska | 0:5045d2638c29 | 41 | |
toddouska | 0:5045d2638c29 | 42 | #undef X509_NAME /* wincrypt.h clash */ |
toddouska | 0:5045d2638c29 | 43 | |
toddouska | 0:5045d2638c29 | 44 | #ifdef __cplusplus |
toddouska | 0:5045d2638c29 | 45 | extern "C" { |
toddouska | 0:5045d2638c29 | 46 | #endif |
toddouska | 0:5045d2638c29 | 47 | |
toddouska | 0:5045d2638c29 | 48 | |
toddouska | 0:5045d2638c29 | 49 | |
toddouska | 0:5045d2638c29 | 50 | typedef struct SSL SSL; |
toddouska | 0:5045d2638c29 | 51 | typedef struct SSL_SESSION SSL_SESSION; |
toddouska | 0:5045d2638c29 | 52 | typedef struct SSL_METHOD SSL_METHOD; |
toddouska | 0:5045d2638c29 | 53 | typedef struct SSL_CTX SSL_CTX; |
toddouska | 0:5045d2638c29 | 54 | |
toddouska | 0:5045d2638c29 | 55 | typedef struct X509 X509; |
toddouska | 0:5045d2638c29 | 56 | typedef struct X509_NAME X509_NAME; |
toddouska | 0:5045d2638c29 | 57 | typedef struct X509_CHAIN X509_CHAIN; |
toddouska | 0:5045d2638c29 | 58 | |
toddouska | 0:5045d2638c29 | 59 | |
toddouska | 0:5045d2638c29 | 60 | /* redeclare guard */ |
toddouska | 0:5045d2638c29 | 61 | #define SSL_TYPES_DEFINED |
toddouska | 0:5045d2638c29 | 62 | |
toddouska | 0:5045d2638c29 | 63 | |
toddouska | 0:5045d2638c29 | 64 | |
toddouska | 0:5045d2638c29 | 65 | |
toddouska | 0:5045d2638c29 | 66 | typedef struct EVP_PKEY EVP_PKEY; |
toddouska | 0:5045d2638c29 | 67 | typedef struct RSA RSA; |
toddouska | 0:5045d2638c29 | 68 | typedef struct BIO BIO; |
toddouska | 0:5045d2638c29 | 69 | typedef struct BIO_METHOD BIO_METHOD; |
toddouska | 0:5045d2638c29 | 70 | typedef struct SSL_CIPHER SSL_CIPHER; |
toddouska | 0:5045d2638c29 | 71 | typedef struct X509_LOOKUP X509_LOOKUP; |
toddouska | 0:5045d2638c29 | 72 | typedef struct X509_LOOKUP_METHOD X509_LOOKUP_METHOD; |
toddouska | 0:5045d2638c29 | 73 | typedef struct X509_CRL X509_CRL; |
toddouska | 0:5045d2638c29 | 74 | typedef struct X509_EXTENSION X509_EXTENSION; |
toddouska | 0:5045d2638c29 | 75 | typedef struct ASN1_TIME ASN1_TIME; |
toddouska | 0:5045d2638c29 | 76 | typedef struct ASN1_INTEGER ASN1_INTEGER; |
toddouska | 0:5045d2638c29 | 77 | typedef struct ASN1_OBJECT ASN1_OBJECT; |
toddouska | 0:5045d2638c29 | 78 | typedef struct ASN1_STRING ASN1_STRING; |
toddouska | 0:5045d2638c29 | 79 | typedef struct CRYPTO_dynlock_value CRYPTO_dynlock_value; |
toddouska | 0:5045d2638c29 | 80 | |
toddouska | 0:5045d2638c29 | 81 | #define ASN1_UTCTIME ASN1_TIME |
toddouska | 0:5045d2638c29 | 82 | |
toddouska | 0:5045d2638c29 | 83 | typedef struct MD4_CTX { |
toddouska | 0:5045d2638c29 | 84 | int buffer[32]; /* big enough to hold, check size in Init */ |
toddouska | 0:5045d2638c29 | 85 | } MD4_CTX; |
toddouska | 0:5045d2638c29 | 86 | |
toddouska | 0:5045d2638c29 | 87 | |
toddouska | 0:5045d2638c29 | 88 | typedef struct COMP_METHOD { |
toddouska | 0:5045d2638c29 | 89 | int type; /* stunnel dereference */ |
toddouska | 0:5045d2638c29 | 90 | } COMP_METHOD; |
toddouska | 0:5045d2638c29 | 91 | |
toddouska | 0:5045d2638c29 | 92 | |
toddouska | 0:5045d2638c29 | 93 | typedef struct X509_STORE { |
toddouska | 0:5045d2638c29 | 94 | int cache; /* stunnel dereference */ |
toddouska | 0:5045d2638c29 | 95 | } X509_STORE; |
toddouska | 0:5045d2638c29 | 96 | |
toddouska | 0:5045d2638c29 | 97 | |
toddouska | 0:5045d2638c29 | 98 | typedef struct X509_REVOKED { |
toddouska | 0:5045d2638c29 | 99 | ASN1_INTEGER* serialNumber; /* stunnel dereference */ |
toddouska | 0:5045d2638c29 | 100 | } X509_REVOKED; |
toddouska | 0:5045d2638c29 | 101 | |
toddouska | 0:5045d2638c29 | 102 | |
toddouska | 0:5045d2638c29 | 103 | typedef struct X509_OBJECT { |
toddouska | 0:5045d2638c29 | 104 | union { |
toddouska | 0:5045d2638c29 | 105 | char* ptr; |
toddouska | 0:5045d2638c29 | 106 | X509_CRL* crl; /* stunnel dereference */ |
toddouska | 0:5045d2638c29 | 107 | } data; |
toddouska | 0:5045d2638c29 | 108 | } X509_OBJECT; |
toddouska | 0:5045d2638c29 | 109 | |
toddouska | 0:5045d2638c29 | 110 | |
toddouska | 0:5045d2638c29 | 111 | /* in cyassl_int.h too, change there !! */ |
toddouska | 0:5045d2638c29 | 112 | typedef struct X509_STORE_CTX { |
toddouska | 0:5045d2638c29 | 113 | int error; |
toddouska | 0:5045d2638c29 | 114 | int error_depth; |
toddouska | 0:5045d2638c29 | 115 | X509* current_cert; /* stunnel dereference */ |
toddouska | 0:5045d2638c29 | 116 | char* domain; /* subject CN domain name */ |
toddouska | 0:5045d2638c29 | 117 | /* in cyassl_int.h too, change there !! */ |
toddouska | 0:5045d2638c29 | 118 | } X509_STORE_CTX; |
toddouska | 0:5045d2638c29 | 119 | |
toddouska | 0:5045d2638c29 | 120 | |
toddouska | 0:5045d2638c29 | 121 | SSL_METHOD *SSLv3_server_method(void); |
toddouska | 0:5045d2638c29 | 122 | SSL_METHOD *SSLv3_client_method(void); |
toddouska | 0:5045d2638c29 | 123 | SSL_METHOD *TLSv1_server_method(void); |
toddouska | 0:5045d2638c29 | 124 | SSL_METHOD *TLSv1_client_method(void); |
toddouska | 0:5045d2638c29 | 125 | SSL_METHOD *TLSv1_1_server_method(void); |
toddouska | 0:5045d2638c29 | 126 | SSL_METHOD *TLSv1_1_client_method(void); |
toddouska | 0:5045d2638c29 | 127 | SSL_METHOD *TLSv1_2_server_method(void); |
toddouska | 0:5045d2638c29 | 128 | SSL_METHOD *TLSv1_2_client_method(void); |
toddouska | 0:5045d2638c29 | 129 | |
toddouska | 0:5045d2638c29 | 130 | #ifdef CYASSL_DTLS |
toddouska | 0:5045d2638c29 | 131 | SSL_METHOD *DTLSv1_client_method(void); |
toddouska | 0:5045d2638c29 | 132 | SSL_METHOD *DTLSv1_server_method(void); |
toddouska | 0:5045d2638c29 | 133 | #endif |
toddouska | 0:5045d2638c29 | 134 | |
toddouska | 0:5045d2638c29 | 135 | #ifndef NO_FILESYSTEM |
toddouska | 0:5045d2638c29 | 136 | |
toddouska | 0:5045d2638c29 | 137 | int SSL_CTX_use_certificate_file(SSL_CTX*, const char*, int); |
toddouska | 0:5045d2638c29 | 138 | int SSL_CTX_use_PrivateKey_file(SSL_CTX*, const char*, int); |
toddouska | 0:5045d2638c29 | 139 | int SSL_CTX_load_verify_locations(SSL_CTX*, const char*, const char*); |
toddouska | 0:5045d2638c29 | 140 | int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); |
toddouska | 0:5045d2638c29 | 141 | int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX*, const char*, int); |
toddouska | 0:5045d2638c29 | 142 | |
toddouska | 0:5045d2638c29 | 143 | #ifdef CYASSL_DER_LOAD |
toddouska | 0:5045d2638c29 | 144 | int CyaSSL_CTX_load_verify_locations(SSL_CTX*, const char*, int); |
toddouska | 0:5045d2638c29 | 145 | #endif |
toddouska | 0:5045d2638c29 | 146 | |
toddouska | 0:5045d2638c29 | 147 | #ifdef HAVE_NTRU |
toddouska | 0:5045d2638c29 | 148 | int CyaSSL_CTX_use_NTRUPrivateKey_file(SSL_CTX*, const char*); /* load NTRU |
toddouska | 0:5045d2638c29 | 149 | private key blob */ |
toddouska | 0:5045d2638c29 | 150 | #endif |
toddouska | 0:5045d2638c29 | 151 | |
toddouska | 0:5045d2638c29 | 152 | int CyaSSL_PemCertToDer(const char*, unsigned char*, int); |
toddouska | 0:5045d2638c29 | 153 | |
toddouska | 0:5045d2638c29 | 154 | #endif /* NO_FILESYSTEM */ |
toddouska | 0:5045d2638c29 | 155 | |
toddouska | 0:5045d2638c29 | 156 | SSL_CTX* SSL_CTX_new(SSL_METHOD*); |
toddouska | 0:5045d2638c29 | 157 | SSL* SSL_new(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 158 | int SSL_set_fd (SSL*, int); |
toddouska | 0:5045d2638c29 | 159 | int SSL_get_fd(const SSL*); |
toddouska | 0:5045d2638c29 | 160 | int SSL_connect(SSL*); /* please see note at top of README |
toddouska | 0:5045d2638c29 | 161 | if you get an error from connect */ |
toddouska | 0:5045d2638c29 | 162 | int SSL_write(SSL*, const void*, int); |
toddouska | 0:5045d2638c29 | 163 | int SSL_read(SSL*, void*, int); |
toddouska | 0:5045d2638c29 | 164 | int SSL_accept(SSL*); |
toddouska | 0:5045d2638c29 | 165 | void SSL_CTX_free(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 166 | void SSL_free(SSL*); |
toddouska | 0:5045d2638c29 | 167 | int SSL_shutdown(SSL*); |
toddouska | 0:5045d2638c29 | 168 | |
toddouska | 0:5045d2638c29 | 169 | void SSL_CTX_set_quiet_shutdown(SSL_CTX*, int); |
toddouska | 0:5045d2638c29 | 170 | |
toddouska | 0:5045d2638c29 | 171 | int SSL_get_error(SSL*, int); |
toddouska | 0:5045d2638c29 | 172 | |
toddouska | 0:5045d2638c29 | 173 | int SSL_set_session(SSL *ssl, SSL_SESSION *session); |
toddouska | 0:5045d2638c29 | 174 | SSL_SESSION* SSL_get_session(SSL* ssl); |
toddouska | 0:5045d2638c29 | 175 | void SSL_flush_sessions(SSL_CTX *ctx, long tm); |
toddouska | 0:5045d2638c29 | 176 | |
toddouska | 0:5045d2638c29 | 177 | |
toddouska | 0:5045d2638c29 | 178 | typedef int (*VerifyCallback)(int, X509_STORE_CTX*); |
toddouska | 0:5045d2638c29 | 179 | typedef int (*pem_password_cb)(char*, int, int, void*); |
toddouska | 0:5045d2638c29 | 180 | |
toddouska | 0:5045d2638c29 | 181 | void SSL_CTX_set_verify(SSL_CTX*, int, VerifyCallback verify_callback); |
toddouska | 0:5045d2638c29 | 182 | |
toddouska | 0:5045d2638c29 | 183 | |
toddouska | 0:5045d2638c29 | 184 | int SSL_pending(SSL*); |
toddouska | 0:5045d2638c29 | 185 | |
toddouska | 0:5045d2638c29 | 186 | |
toddouska | 0:5045d2638c29 | 187 | void SSL_load_error_strings(void); |
toddouska | 0:5045d2638c29 | 188 | int SSL_library_init(void); |
toddouska | 0:5045d2638c29 | 189 | long SSL_CTX_set_session_cache_mode(SSL_CTX*, long); |
toddouska | 0:5045d2638c29 | 190 | |
toddouska | 0:5045d2638c29 | 191 | /* only supports full name from cipher_name[] delimited by : */ |
toddouska | 0:5045d2638c29 | 192 | int SSL_CTX_set_cipher_list(SSL_CTX*, const char*); |
toddouska | 0:5045d2638c29 | 193 | |
toddouska | 0:5045d2638c29 | 194 | char* ERR_error_string(unsigned long,char*); |
toddouska | 0:5045d2638c29 | 195 | void ERR_error_string_n(unsigned long e, char *buf, size_t len); |
toddouska | 0:5045d2638c29 | 196 | |
toddouska | 0:5045d2638c29 | 197 | |
toddouska | 0:5045d2638c29 | 198 | /* extras */ |
toddouska | 0:5045d2638c29 | 199 | |
toddouska | 0:5045d2638c29 | 200 | #define STACK_OF(x) x |
toddouska | 0:5045d2638c29 | 201 | |
toddouska | 0:5045d2638c29 | 202 | int SSL_set_ex_data(SSL*, int, void*); |
toddouska | 0:5045d2638c29 | 203 | int SSL_get_shutdown(const SSL*); |
toddouska | 0:5045d2638c29 | 204 | int SSL_set_rfd(SSL*, int); |
toddouska | 0:5045d2638c29 | 205 | int SSL_set_wfd(SSL*, int); |
toddouska | 0:5045d2638c29 | 206 | void SSL_set_shutdown(SSL*, int); |
toddouska | 0:5045d2638c29 | 207 | int SSL_set_session_id_context(SSL*, const unsigned char*, unsigned int); |
toddouska | 0:5045d2638c29 | 208 | void SSL_set_connect_state(SSL*); |
toddouska | 0:5045d2638c29 | 209 | void SSL_set_accept_state(SSL*); |
toddouska | 0:5045d2638c29 | 210 | int SSL_session_reused(SSL*); |
toddouska | 0:5045d2638c29 | 211 | void SSL_SESSION_free(SSL_SESSION* session); |
toddouska | 0:5045d2638c29 | 212 | |
toddouska | 0:5045d2638c29 | 213 | const char* SSL_get_version(SSL*); |
toddouska | 0:5045d2638c29 | 214 | SSL_CIPHER* SSL_get_current_cipher(SSL*); |
toddouska | 0:5045d2638c29 | 215 | char* SSL_CIPHER_description(SSL_CIPHER*, char*, int); |
toddouska | 0:5045d2638c29 | 216 | const char* SSL_CIPHER_get_name(const SSL_CIPHER* cipher); |
toddouska | 0:5045d2638c29 | 217 | SSL_SESSION* SSL_get1_session(SSL* ssl); /* what's ref count */ |
toddouska | 0:5045d2638c29 | 218 | |
toddouska | 0:5045d2638c29 | 219 | void X509_free(X509*); |
toddouska | 0:5045d2638c29 | 220 | void OPENSSL_free(void*); |
toddouska | 0:5045d2638c29 | 221 | |
toddouska | 0:5045d2638c29 | 222 | int OCSP_parse_url(char* url, char** host, char** port, char** path, int* ssl); |
toddouska | 0:5045d2638c29 | 223 | |
toddouska | 0:5045d2638c29 | 224 | SSL_METHOD* SSLv23_client_method(void); |
toddouska | 0:5045d2638c29 | 225 | SSL_METHOD* SSLv2_client_method(void); |
toddouska | 0:5045d2638c29 | 226 | SSL_METHOD* SSLv2_server_method(void); |
toddouska | 0:5045d2638c29 | 227 | |
toddouska | 0:5045d2638c29 | 228 | void MD4_Init(MD4_CTX*); |
toddouska | 0:5045d2638c29 | 229 | void MD4_Update(MD4_CTX*, const void*, size_t); |
toddouska | 0:5045d2638c29 | 230 | void MD4_Final(unsigned char*, MD4_CTX*); |
toddouska | 0:5045d2638c29 | 231 | |
toddouska | 0:5045d2638c29 | 232 | BIO* BIO_new(BIO_METHOD*); |
toddouska | 0:5045d2638c29 | 233 | int BIO_free(BIO*); |
toddouska | 0:5045d2638c29 | 234 | int BIO_free_all(BIO*); |
toddouska | 0:5045d2638c29 | 235 | int BIO_read(BIO*, void*, int); |
toddouska | 0:5045d2638c29 | 236 | int BIO_write(BIO*, const void*, int); |
toddouska | 0:5045d2638c29 | 237 | BIO* BIO_push(BIO*, BIO* append); |
toddouska | 0:5045d2638c29 | 238 | BIO* BIO_pop(BIO*); |
toddouska | 0:5045d2638c29 | 239 | int BIO_flush(BIO*); |
toddouska | 0:5045d2638c29 | 240 | int BIO_pending(BIO*); |
toddouska | 0:5045d2638c29 | 241 | |
toddouska | 0:5045d2638c29 | 242 | BIO_METHOD* BIO_f_buffer(void); |
toddouska | 0:5045d2638c29 | 243 | long BIO_set_write_buffer_size(BIO*, long size); |
toddouska | 0:5045d2638c29 | 244 | BIO_METHOD* BIO_f_ssl(void); |
toddouska | 0:5045d2638c29 | 245 | BIO* BIO_new_socket(int sfd, int flag); |
toddouska | 0:5045d2638c29 | 246 | void SSL_set_bio(SSL*, BIO* rd, BIO* wr); |
toddouska | 0:5045d2638c29 | 247 | int BIO_eof(BIO*); |
toddouska | 0:5045d2638c29 | 248 | long BIO_set_ssl(BIO*, SSL*, int flag); |
toddouska | 0:5045d2638c29 | 249 | |
toddouska | 0:5045d2638c29 | 250 | BIO_METHOD* BIO_s_mem(void); |
toddouska | 0:5045d2638c29 | 251 | BIO_METHOD* BIO_f_base64(void); |
toddouska | 0:5045d2638c29 | 252 | void BIO_set_flags(BIO*, int); |
toddouska | 0:5045d2638c29 | 253 | |
toddouska | 0:5045d2638c29 | 254 | void OpenSSL_add_all_algorithms(void); |
toddouska | 0:5045d2638c29 | 255 | int SSLeay_add_ssl_algorithms(void); |
toddouska | 0:5045d2638c29 | 256 | int SSLeay_add_all_algorithms(void); |
toddouska | 0:5045d2638c29 | 257 | |
toddouska | 0:5045d2638c29 | 258 | void RAND_screen(void); |
toddouska | 0:5045d2638c29 | 259 | const char* RAND_file_name(char*, size_t); |
toddouska | 0:5045d2638c29 | 260 | int RAND_write_file(const char*); |
toddouska | 0:5045d2638c29 | 261 | int RAND_load_file(const char*, long); |
toddouska | 0:5045d2638c29 | 262 | int RAND_egd(const char*); |
toddouska | 0:5045d2638c29 | 263 | |
toddouska | 0:5045d2638c29 | 264 | COMP_METHOD* COMP_zlib(void); |
toddouska | 0:5045d2638c29 | 265 | COMP_METHOD* COMP_rle(void); |
toddouska | 0:5045d2638c29 | 266 | int SSL_COMP_add_compression_method(int, void*); |
toddouska | 0:5045d2638c29 | 267 | |
toddouska | 0:5045d2638c29 | 268 | int SSL_get_ex_new_index(long, void*, void*, void*, void*); |
toddouska | 0:5045d2638c29 | 269 | |
toddouska | 0:5045d2638c29 | 270 | void CRYPTO_set_id_callback(unsigned long (*f)(void)); |
toddouska | 0:5045d2638c29 | 271 | void CRYPTO_set_locking_callback(void (*f)(int, int, const char*, int)); |
toddouska | 0:5045d2638c29 | 272 | void CRYPTO_set_dynlock_create_callback(CRYPTO_dynlock_value* (*f)(const char*, |
toddouska | 0:5045d2638c29 | 273 | int)); |
toddouska | 0:5045d2638c29 | 274 | void CRYPTO_set_dynlock_lock_callback(void (*f)(int, CRYPTO_dynlock_value*, |
toddouska | 0:5045d2638c29 | 275 | const char*, int)); |
toddouska | 0:5045d2638c29 | 276 | void CRYPTO_set_dynlock_destroy_callback(void (*f)(CRYPTO_dynlock_value*, |
toddouska | 0:5045d2638c29 | 277 | const char*, int)); |
toddouska | 0:5045d2638c29 | 278 | |
toddouska | 0:5045d2638c29 | 279 | X509* X509_STORE_CTX_get_current_cert(X509_STORE_CTX*); |
toddouska | 0:5045d2638c29 | 280 | int X509_STORE_CTX_get_error(X509_STORE_CTX*); |
toddouska | 0:5045d2638c29 | 281 | int X509_STORE_CTX_get_error_depth(X509_STORE_CTX*); |
toddouska | 0:5045d2638c29 | 282 | |
toddouska | 0:5045d2638c29 | 283 | char* X509_NAME_oneline(X509_NAME*, char*, int); |
toddouska | 0:5045d2638c29 | 284 | X509_NAME* X509_get_issuer_name(X509*); |
toddouska | 0:5045d2638c29 | 285 | X509_NAME* X509_get_subject_name(X509*); |
toddouska | 0:5045d2638c29 | 286 | const char* X509_verify_cert_error_string(long); |
toddouska | 0:5045d2638c29 | 287 | |
toddouska | 0:5045d2638c29 | 288 | int X509_LOOKUP_add_dir(X509_LOOKUP*, const char*, long); |
toddouska | 0:5045d2638c29 | 289 | int X509_LOOKUP_load_file(X509_LOOKUP*, const char*, long); |
toddouska | 0:5045d2638c29 | 290 | X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir(void); |
toddouska | 0:5045d2638c29 | 291 | X509_LOOKUP_METHOD* X509_LOOKUP_file(void); |
toddouska | 0:5045d2638c29 | 292 | |
toddouska | 0:5045d2638c29 | 293 | X509_LOOKUP* X509_STORE_add_lookup(X509_STORE*, X509_LOOKUP_METHOD*); |
toddouska | 0:5045d2638c29 | 294 | X509_STORE* X509_STORE_new(void); |
toddouska | 0:5045d2638c29 | 295 | int X509_STORE_get_by_subject(X509_STORE_CTX*, int, X509_NAME*, |
toddouska | 0:5045d2638c29 | 296 | X509_OBJECT*); |
toddouska | 0:5045d2638c29 | 297 | int X509_STORE_CTX_init(X509_STORE_CTX*, X509_STORE*, X509*, STACK_OF(X509)*); |
toddouska | 0:5045d2638c29 | 298 | void X509_STORE_CTX_cleanup(X509_STORE_CTX*); |
toddouska | 0:5045d2638c29 | 299 | |
toddouska | 0:5045d2638c29 | 300 | ASN1_TIME* X509_CRL_get_lastUpdate(X509_CRL*); |
toddouska | 0:5045d2638c29 | 301 | ASN1_TIME* X509_CRL_get_nextUpdate(X509_CRL*); |
toddouska | 0:5045d2638c29 | 302 | |
toddouska | 0:5045d2638c29 | 303 | EVP_PKEY* X509_get_pubkey(X509*); |
toddouska | 0:5045d2638c29 | 304 | int X509_CRL_verify(X509_CRL*, EVP_PKEY*); |
toddouska | 0:5045d2638c29 | 305 | void X509_STORE_CTX_set_error(X509_STORE_CTX*, int); |
toddouska | 0:5045d2638c29 | 306 | void X509_OBJECT_free_contents(X509_OBJECT*); |
toddouska | 0:5045d2638c29 | 307 | void EVP_PKEY_free(EVP_PKEY*); |
toddouska | 0:5045d2638c29 | 308 | int X509_cmp_current_time(const ASN1_TIME*); |
toddouska | 0:5045d2638c29 | 309 | int sk_X509_REVOKED_num(X509_REVOKED*); |
toddouska | 0:5045d2638c29 | 310 | |
toddouska | 0:5045d2638c29 | 311 | X509_REVOKED* X509_CRL_get_REVOKED(X509_CRL*); |
toddouska | 0:5045d2638c29 | 312 | X509_REVOKED* sk_X509_REVOKED_value(X509_REVOKED*, int); |
toddouska | 0:5045d2638c29 | 313 | |
toddouska | 0:5045d2638c29 | 314 | ASN1_INTEGER* X509_get_serialNumber(X509*); |
toddouska | 0:5045d2638c29 | 315 | |
toddouska | 0:5045d2638c29 | 316 | int ASN1_TIME_print(BIO*, const ASN1_TIME*); |
toddouska | 0:5045d2638c29 | 317 | |
toddouska | 0:5045d2638c29 | 318 | int ASN1_INTEGER_cmp(const ASN1_INTEGER*, const ASN1_INTEGER*); |
toddouska | 0:5045d2638c29 | 319 | long ASN1_INTEGER_get(const ASN1_INTEGER*); |
toddouska | 0:5045d2638c29 | 320 | |
toddouska | 0:5045d2638c29 | 321 | STACK_OF(X509_NAME)* SSL_load_client_CA_file(const char*); |
toddouska | 0:5045d2638c29 | 322 | |
toddouska | 0:5045d2638c29 | 323 | void SSL_CTX_set_client_CA_list(SSL_CTX*, STACK_OF(X509_NAME)*); |
toddouska | 0:5045d2638c29 | 324 | void* X509_STORE_CTX_get_ex_data(X509_STORE_CTX*, int); |
toddouska | 0:5045d2638c29 | 325 | int SSL_get_ex_data_X509_STORE_CTX_idx(void); |
toddouska | 0:5045d2638c29 | 326 | void* SSL_get_ex_data(const SSL*, int); |
toddouska | 0:5045d2638c29 | 327 | |
toddouska | 0:5045d2638c29 | 328 | void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX*, void* userdata); |
toddouska | 0:5045d2638c29 | 329 | void SSL_CTX_set_default_passwd_cb(SSL_CTX*, pem_password_cb); |
toddouska | 0:5045d2638c29 | 330 | |
toddouska | 0:5045d2638c29 | 331 | |
toddouska | 0:5045d2638c29 | 332 | long SSL_CTX_set_timeout(SSL_CTX*, long); |
toddouska | 0:5045d2638c29 | 333 | void SSL_CTX_set_info_callback(SSL_CTX*, void (*)()); |
toddouska | 0:5045d2638c29 | 334 | |
toddouska | 0:5045d2638c29 | 335 | unsigned long ERR_peek_error(void); |
toddouska | 0:5045d2638c29 | 336 | int ERR_GET_REASON(int); |
toddouska | 0:5045d2638c29 | 337 | |
toddouska | 0:5045d2638c29 | 338 | char* SSL_alert_type_string_long(int); |
toddouska | 0:5045d2638c29 | 339 | char* SSL_alert_desc_string_long(int); |
toddouska | 0:5045d2638c29 | 340 | char* SSL_state_string_long(SSL*); |
toddouska | 0:5045d2638c29 | 341 | |
toddouska | 0:5045d2638c29 | 342 | void RSA_free(RSA*); |
toddouska | 0:5045d2638c29 | 343 | RSA* RSA_generate_key(int, unsigned long, void(*)(int, int, void*), void*); |
toddouska | 0:5045d2638c29 | 344 | void SSL_CTX_set_tmp_rsa_callback(SSL_CTX*, RSA*(*)(SSL*, int, int)); |
toddouska | 0:5045d2638c29 | 345 | |
toddouska | 0:5045d2638c29 | 346 | int PEM_def_callback(char*, int num, int w, void* key); |
toddouska | 0:5045d2638c29 | 347 | |
toddouska | 0:5045d2638c29 | 348 | long SSL_CTX_sess_accept(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 349 | long SSL_CTX_sess_connect(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 350 | long SSL_CTX_sess_accept_good(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 351 | long SSL_CTX_sess_connect_good(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 352 | long SSL_CTX_sess_accept_renegotiate(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 353 | long SSL_CTX_sess_connect_renegotiate(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 354 | long SSL_CTX_sess_hits(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 355 | long SSL_CTX_sess_cb_hits(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 356 | long SSL_CTX_sess_cache_full(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 357 | long SSL_CTX_sess_misses(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 358 | long SSL_CTX_sess_timeouts(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 359 | long SSL_CTX_sess_number(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 360 | long SSL_CTX_sess_get_cache_size(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 361 | |
toddouska | 0:5045d2638c29 | 362 | |
toddouska | 0:5045d2638c29 | 363 | #define SSL_DEFAULT_CIPHER_LIST "" /* default all */ |
toddouska | 0:5045d2638c29 | 364 | #define RSA_F4 0x10001L |
toddouska | 0:5045d2638c29 | 365 | |
toddouska | 0:5045d2638c29 | 366 | enum { |
toddouska | 0:5045d2638c29 | 367 | OCSP_NOCERTS = 1, |
toddouska | 0:5045d2638c29 | 368 | OCSP_NOINTERN = 2, |
toddouska | 0:5045d2638c29 | 369 | OCSP_NOSIGS = 4, |
toddouska | 0:5045d2638c29 | 370 | OCSP_NOCHAIN = 8, |
toddouska | 0:5045d2638c29 | 371 | OCSP_NOVERIFY = 16, |
toddouska | 0:5045d2638c29 | 372 | OCSP_NOEXPLICIT = 32, |
toddouska | 0:5045d2638c29 | 373 | OCSP_NOCASIGN = 64, |
toddouska | 0:5045d2638c29 | 374 | OCSP_NODELEGATED = 128, |
toddouska | 0:5045d2638c29 | 375 | OCSP_NOCHECKS = 256, |
toddouska | 0:5045d2638c29 | 376 | OCSP_TRUSTOTHER = 512, |
toddouska | 0:5045d2638c29 | 377 | OCSP_RESPID_KEY = 1024, |
toddouska | 0:5045d2638c29 | 378 | OCSP_NOTIME = 2048, |
toddouska | 0:5045d2638c29 | 379 | |
toddouska | 0:5045d2638c29 | 380 | OCSP_CERTID = 2, |
toddouska | 0:5045d2638c29 | 381 | OCSP_REQUEST = 4, |
toddouska | 0:5045d2638c29 | 382 | OCSP_RESPONSE = 8, |
toddouska | 0:5045d2638c29 | 383 | OCSP_BASICRESP = 16, |
toddouska | 0:5045d2638c29 | 384 | |
toddouska | 0:5045d2638c29 | 385 | ASN1_GENERALIZEDTIME = 4, |
toddouska | 0:5045d2638c29 | 386 | |
toddouska | 0:5045d2638c29 | 387 | SSL_OP_MICROSOFT_SESS_ID_BUG = 1, |
toddouska | 0:5045d2638c29 | 388 | SSL_OP_NETSCAPE_CHALLENGE_BUG = 2, |
toddouska | 0:5045d2638c29 | 389 | SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG = 3, |
toddouska | 0:5045d2638c29 | 390 | SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG = 4, |
toddouska | 0:5045d2638c29 | 391 | SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER = 5, |
toddouska | 0:5045d2638c29 | 392 | SSL_OP_MSIE_SSLV2_RSA_PADDING = 6, |
toddouska | 0:5045d2638c29 | 393 | SSL_OP_SSLEAY_080_CLIENT_DH_BUG = 7, |
toddouska | 0:5045d2638c29 | 394 | SSL_OP_TLS_D5_BUG = 8, |
toddouska | 0:5045d2638c29 | 395 | SSL_OP_TLS_BLOCK_PADDING_BUG = 9, |
toddouska | 0:5045d2638c29 | 396 | SSL_OP_TLS_ROLLBACK_BUG = 10, |
toddouska | 0:5045d2638c29 | 397 | SSL_OP_ALL = 11, |
toddouska | 0:5045d2638c29 | 398 | SSL_OP_EPHEMERAL_RSA = 12, |
toddouska | 0:5045d2638c29 | 399 | SSL_OP_NO_SSLv3 = 13, |
toddouska | 0:5045d2638c29 | 400 | SSL_OP_NO_TLSv1 = 14, |
toddouska | 0:5045d2638c29 | 401 | SSL_OP_PKCS1_CHECK_1 = 15, |
toddouska | 0:5045d2638c29 | 402 | SSL_OP_PKCS1_CHECK_2 = 16, |
toddouska | 0:5045d2638c29 | 403 | SSL_OP_NETSCAPE_CA_DN_BUG = 17, |
toddouska | 0:5045d2638c29 | 404 | SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG = 18, |
toddouska | 0:5045d2638c29 | 405 | SSL_OP_SINGLE_DH_USE = 19, |
toddouska | 0:5045d2638c29 | 406 | SSL_OP_NO_TICKET = 20, |
toddouska | 0:5045d2638c29 | 407 | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS = 21, |
toddouska | 0:5045d2638c29 | 408 | SSL_OP_NO_QUERY_MTU = 22, |
toddouska | 0:5045d2638c29 | 409 | SSL_OP_COOKIE_EXCHANGE = 23, |
toddouska | 0:5045d2638c29 | 410 | SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = 24, |
toddouska | 0:5045d2638c29 | 411 | SSL_OP_SINGLE_ECDH_USE = 25, |
toddouska | 0:5045d2638c29 | 412 | SSL_OP_CIPHER_SERVER_PREFERENCE = 26, |
toddouska | 0:5045d2638c29 | 413 | |
toddouska | 0:5045d2638c29 | 414 | SSL_MAX_SSL_SESSION_ID_LENGTH = 32, |
toddouska | 0:5045d2638c29 | 415 | |
toddouska | 0:5045d2638c29 | 416 | EVP_R_BAD_DECRYPT = 2, |
toddouska | 0:5045d2638c29 | 417 | |
toddouska | 0:5045d2638c29 | 418 | SSL_CB_LOOP = 4, |
toddouska | 0:5045d2638c29 | 419 | SSL_ST_CONNECT = 5, |
toddouska | 0:5045d2638c29 | 420 | SSL_ST_ACCEPT = 6, |
toddouska | 0:5045d2638c29 | 421 | SSL_CB_ALERT = 7, |
toddouska | 0:5045d2638c29 | 422 | SSL_CB_READ = 8, |
toddouska | 0:5045d2638c29 | 423 | SSL_CB_HANDSHAKE_DONE = 9, |
toddouska | 0:5045d2638c29 | 424 | |
toddouska | 0:5045d2638c29 | 425 | SSL_MODE_ENABLE_PARTIAL_WRITE = 2, |
toddouska | 0:5045d2638c29 | 426 | |
toddouska | 0:5045d2638c29 | 427 | BIO_FLAGS_BASE64_NO_NL = 1, |
toddouska | 0:5045d2638c29 | 428 | BIO_CLOSE = 1, |
toddouska | 0:5045d2638c29 | 429 | BIO_NOCLOSE = 0, |
toddouska | 0:5045d2638c29 | 430 | |
toddouska | 0:5045d2638c29 | 431 | NID_undef = 0, |
toddouska | 0:5045d2638c29 | 432 | |
toddouska | 0:5045d2638c29 | 433 | X509_FILETYPE_PEM = 8, |
toddouska | 0:5045d2638c29 | 434 | X509_LU_X509 = 9, |
toddouska | 0:5045d2638c29 | 435 | X509_LU_CRL = 12, |
toddouska | 0:5045d2638c29 | 436 | |
toddouska | 0:5045d2638c29 | 437 | X509_V_ERR_CRL_SIGNATURE_FAILURE = 13, |
toddouska | 0:5045d2638c29 | 438 | X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 14, |
toddouska | 0:5045d2638c29 | 439 | X509_V_ERR_CRL_HAS_EXPIRED = 15, |
toddouska | 0:5045d2638c29 | 440 | X509_V_ERR_CERT_REVOKED = 16, |
toddouska | 0:5045d2638c29 | 441 | X509_V_ERR_CERT_CHAIN_TOO_LONG = 17, |
toddouska | 0:5045d2638c29 | 442 | X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 18, |
toddouska | 0:5045d2638c29 | 443 | X509_V_ERR_CERT_NOT_YET_VALID = 19, |
toddouska | 0:5045d2638c29 | 444 | X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 20, |
toddouska | 0:5045d2638c29 | 445 | X509_V_ERR_CERT_HAS_EXPIRED = 21, |
toddouska | 0:5045d2638c29 | 446 | X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 22, |
toddouska | 0:5045d2638c29 | 447 | |
toddouska | 0:5045d2638c29 | 448 | X509_V_OK = 0, |
toddouska | 0:5045d2638c29 | 449 | |
toddouska | 0:5045d2638c29 | 450 | CRYPTO_LOCK = 1, |
toddouska | 0:5045d2638c29 | 451 | CRYPTO_NUM_LOCKS = 10, |
toddouska | 0:5045d2638c29 | 452 | |
toddouska | 0:5045d2638c29 | 453 | }; |
toddouska | 0:5045d2638c29 | 454 | |
toddouska | 0:5045d2638c29 | 455 | /* extras end */ |
toddouska | 0:5045d2638c29 | 456 | |
toddouska | 0:5045d2638c29 | 457 | #ifndef NO_FILESYSTEM |
toddouska | 0:5045d2638c29 | 458 | /* CyaSSL extension, provide last error from SSL_get_error |
toddouska | 0:5045d2638c29 | 459 | since not using thread storage error queue */ |
toddouska | 0:5045d2638c29 | 460 | void ERR_print_errors_fp(FILE*, int err); |
toddouska | 0:5045d2638c29 | 461 | #endif |
toddouska | 0:5045d2638c29 | 462 | |
toddouska | 0:5045d2638c29 | 463 | enum { /* ssl Constants */ |
toddouska | 0:5045d2638c29 | 464 | SSL_ERROR_NONE = 0, /* for most functions */ |
toddouska | 0:5045d2638c29 | 465 | SSL_FAILURE = 0, /* for some functions */ |
toddouska | 0:5045d2638c29 | 466 | SSL_SUCCESS = 1, |
toddouska | 0:5045d2638c29 | 467 | |
toddouska | 0:5045d2638c29 | 468 | SSL_BAD_CERTTYPE = -8, |
toddouska | 0:5045d2638c29 | 469 | SSL_BAD_STAT = -7, |
toddouska | 0:5045d2638c29 | 470 | SSL_BAD_PATH = -6, |
toddouska | 0:5045d2638c29 | 471 | SSL_BAD_FILETYPE = -5, |
toddouska | 0:5045d2638c29 | 472 | SSL_BAD_FILE = -4, |
toddouska | 0:5045d2638c29 | 473 | SSL_NOT_IMPLEMENTED = -3, |
toddouska | 0:5045d2638c29 | 474 | SSL_UNKNOWN = -2, |
toddouska | 0:5045d2638c29 | 475 | SSL_FATAL_ERROR = -1, |
toddouska | 0:5045d2638c29 | 476 | |
toddouska | 0:5045d2638c29 | 477 | SSL_FILETYPE_ASN1 = 2, |
toddouska | 0:5045d2638c29 | 478 | SSL_FILETYPE_PEM = 1, |
toddouska | 0:5045d2638c29 | 479 | SSL_FILETYPE_DEFAULT = 2, /* ASN1 */ |
toddouska | 0:5045d2638c29 | 480 | SSL_FILETYPE_RAW = 3, /* NTRU raw key blob */ |
toddouska | 0:5045d2638c29 | 481 | |
toddouska | 0:5045d2638c29 | 482 | SSL_VERIFY_NONE = 0, |
toddouska | 0:5045d2638c29 | 483 | SSL_VERIFY_PEER = 1, |
toddouska | 0:5045d2638c29 | 484 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT = 2, |
toddouska | 0:5045d2638c29 | 485 | SSL_VERIFY_CLIENT_ONCE = 4, |
toddouska | 0:5045d2638c29 | 486 | |
toddouska | 0:5045d2638c29 | 487 | SSL_SESS_CACHE_OFF = 30, |
toddouska | 0:5045d2638c29 | 488 | SSL_SESS_CACHE_CLIENT = 31, |
toddouska | 0:5045d2638c29 | 489 | SSL_SESS_CACHE_SERVER = 32, |
toddouska | 0:5045d2638c29 | 490 | SSL_SESS_CACHE_BOTH = 33, |
toddouska | 0:5045d2638c29 | 491 | SSL_SESS_CACHE_NO_AUTO_CLEAR = 34, |
toddouska | 0:5045d2638c29 | 492 | SSL_SESS_CACHE_NO_INTERNAL_LOOKUP = 35, |
toddouska | 0:5045d2638c29 | 493 | |
toddouska | 0:5045d2638c29 | 494 | SSL_ERROR_WANT_READ = 2, |
toddouska | 0:5045d2638c29 | 495 | SSL_ERROR_WANT_WRITE = 3, |
toddouska | 0:5045d2638c29 | 496 | SSL_ERROR_WANT_CONNECT = 7, |
toddouska | 0:5045d2638c29 | 497 | SSL_ERROR_WANT_ACCEPT = 8, |
toddouska | 0:5045d2638c29 | 498 | SSL_ERROR_SYSCALL = 5, |
toddouska | 0:5045d2638c29 | 499 | SSL_ERROR_WANT_X509_LOOKUP = 83, |
toddouska | 0:5045d2638c29 | 500 | SSL_ERROR_ZERO_RETURN = 6, |
toddouska | 0:5045d2638c29 | 501 | SSL_ERROR_SSL = 85, |
toddouska | 0:5045d2638c29 | 502 | |
toddouska | 0:5045d2638c29 | 503 | SSL_SENT_SHUTDOWN = 1, |
toddouska | 0:5045d2638c29 | 504 | SSL_RECEIVED_SHUTDOWN = 2, |
toddouska | 0:5045d2638c29 | 505 | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER = 4, |
toddouska | 0:5045d2638c29 | 506 | SSL_OP_NO_SSLv2 = 8, |
toddouska | 0:5045d2638c29 | 507 | |
toddouska | 0:5045d2638c29 | 508 | SSL_R_SSL_HANDSHAKE_FAILURE = 101, |
toddouska | 0:5045d2638c29 | 509 | SSL_R_TLSV1_ALERT_UNKNOWN_CA = 102, |
toddouska | 0:5045d2638c29 | 510 | SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN = 103, |
toddouska | 0:5045d2638c29 | 511 | SSL_R_SSLV3_ALERT_BAD_CERTIFICATE = 104, |
toddouska | 0:5045d2638c29 | 512 | |
toddouska | 0:5045d2638c29 | 513 | PEM_BUFSIZE = 1024, |
toddouska | 0:5045d2638c29 | 514 | }; |
toddouska | 0:5045d2638c29 | 515 | |
toddouska | 0:5045d2638c29 | 516 | |
toddouska | 0:5045d2638c29 | 517 | #ifndef NO_PSK |
toddouska | 0:5045d2638c29 | 518 | typedef unsigned int (*psk_client_callback)(SSL*, const char*, char*, |
toddouska | 0:5045d2638c29 | 519 | unsigned int, unsigned char*, unsigned int); |
toddouska | 0:5045d2638c29 | 520 | void SSL_CTX_set_psk_client_callback(SSL_CTX*, psk_client_callback); |
toddouska | 0:5045d2638c29 | 521 | void SSL_set_psk_client_callback(SSL*, psk_client_callback); |
toddouska | 0:5045d2638c29 | 522 | |
toddouska | 0:5045d2638c29 | 523 | const char* SSL_get_psk_identity_hint(const SSL*); |
toddouska | 0:5045d2638c29 | 524 | const char* SSL_get_psk_identity(const SSL*); |
toddouska | 0:5045d2638c29 | 525 | |
toddouska | 0:5045d2638c29 | 526 | int SSL_CTX_use_psk_identity_hint(SSL_CTX*, const char*); |
toddouska | 0:5045d2638c29 | 527 | int SSL_use_psk_identity_hint(SSL*, const char*); |
toddouska | 0:5045d2638c29 | 528 | |
toddouska | 0:5045d2638c29 | 529 | typedef unsigned int (*psk_server_callback)(SSL*, const char*, |
toddouska | 0:5045d2638c29 | 530 | unsigned char*, unsigned int); |
toddouska | 0:5045d2638c29 | 531 | void SSL_CTX_set_psk_server_callback(SSL_CTX*, psk_server_callback); |
toddouska | 0:5045d2638c29 | 532 | void SSL_set_psk_server_callback(SSL*, psk_server_callback); |
toddouska | 0:5045d2638c29 | 533 | |
toddouska | 0:5045d2638c29 | 534 | #define PSK_TYPES_DEFINED |
toddouska | 0:5045d2638c29 | 535 | #endif /* NO_PSK */ |
toddouska | 0:5045d2638c29 | 536 | |
toddouska | 0:5045d2638c29 | 537 | |
toddouska | 0:5045d2638c29 | 538 | /* extra begins */ |
toddouska | 0:5045d2638c29 | 539 | |
toddouska | 0:5045d2638c29 | 540 | enum { /* ERR Constants */ |
toddouska | 0:5045d2638c29 | 541 | ERR_TXT_STRING = 1, |
toddouska | 0:5045d2638c29 | 542 | }; |
toddouska | 0:5045d2638c29 | 543 | |
toddouska | 0:5045d2638c29 | 544 | unsigned long ERR_get_error_line_data(const char**, int*, const char**, int *); |
toddouska | 0:5045d2638c29 | 545 | |
toddouska | 0:5045d2638c29 | 546 | unsigned long ERR_get_error(void); |
toddouska | 0:5045d2638c29 | 547 | void ERR_clear_error(void); |
toddouska | 0:5045d2638c29 | 548 | |
toddouska | 0:5045d2638c29 | 549 | |
toddouska | 0:5045d2638c29 | 550 | int RAND_status(void); |
toddouska | 0:5045d2638c29 | 551 | int RAND_bytes(unsigned char* buf, int num); |
toddouska | 0:5045d2638c29 | 552 | SSL_METHOD *SSLv23_server_method(void); |
toddouska | 0:5045d2638c29 | 553 | long SSL_CTX_set_options(SSL_CTX*, long); |
toddouska | 0:5045d2638c29 | 554 | int SSL_CTX_check_private_key(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 555 | |
toddouska | 0:5045d2638c29 | 556 | |
toddouska | 0:5045d2638c29 | 557 | void ERR_free_strings(void); |
toddouska | 0:5045d2638c29 | 558 | void ERR_remove_state(unsigned long); |
toddouska | 0:5045d2638c29 | 559 | void EVP_cleanup(void); |
toddouska | 0:5045d2638c29 | 560 | |
toddouska | 0:5045d2638c29 | 561 | void CRYPTO_cleanup_all_ex_data(void); |
toddouska | 0:5045d2638c29 | 562 | long SSL_CTX_set_mode(SSL_CTX* ctx, long mode); |
toddouska | 0:5045d2638c29 | 563 | long SSL_CTX_get_mode(SSL_CTX* ctx); |
toddouska | 0:5045d2638c29 | 564 | void SSL_CTX_set_default_read_ahead(SSL_CTX* ctx, int m); |
toddouska | 0:5045d2638c29 | 565 | |
toddouska | 0:5045d2638c29 | 566 | long SSL_CTX_sess_set_cache_size(SSL_CTX*, long); |
toddouska | 0:5045d2638c29 | 567 | |
toddouska | 0:5045d2638c29 | 568 | int SSL_CTX_set_default_verify_paths(SSL_CTX*); |
toddouska | 0:5045d2638c29 | 569 | int SSL_CTX_set_session_id_context(SSL_CTX*, const unsigned char*, |
toddouska | 0:5045d2638c29 | 570 | unsigned int); |
toddouska | 0:5045d2638c29 | 571 | |
toddouska | 0:5045d2638c29 | 572 | X509* SSL_get_peer_certificate(SSL* ssl); |
toddouska | 0:5045d2638c29 | 573 | |
toddouska | 0:5045d2638c29 | 574 | int SSL_want_read(SSL*); |
toddouska | 0:5045d2638c29 | 575 | int SSL_want_write(SSL*); |
toddouska | 0:5045d2638c29 | 576 | |
toddouska | 0:5045d2638c29 | 577 | int BIO_printf(BIO*, const char*, ...); |
toddouska | 0:5045d2638c29 | 578 | int ASN1_UTCTIME_print(BIO*, const ASN1_UTCTIME*); |
toddouska | 0:5045d2638c29 | 579 | |
toddouska | 0:5045d2638c29 | 580 | int sk_num(X509_REVOKED*); |
toddouska | 0:5045d2638c29 | 581 | void* sk_value(X509_REVOKED*, int); |
toddouska | 0:5045d2638c29 | 582 | |
toddouska | 0:5045d2638c29 | 583 | /* stunnel 4.28 needs */ |
toddouska | 0:5045d2638c29 | 584 | void* SSL_CTX_get_ex_data(const SSL_CTX*, int); |
toddouska | 0:5045d2638c29 | 585 | int SSL_CTX_set_ex_data(SSL_CTX*, int, void*); |
toddouska | 0:5045d2638c29 | 586 | void SSL_CTX_sess_set_get_cb(SSL_CTX*, SSL_SESSION*(*f)(SSL*, unsigned char*, |
toddouska | 0:5045d2638c29 | 587 | int, int*)); |
toddouska | 0:5045d2638c29 | 588 | void SSL_CTX_sess_set_new_cb(SSL_CTX*, int (*f)(SSL*, SSL_SESSION*)); |
toddouska | 0:5045d2638c29 | 589 | void SSL_CTX_sess_set_remove_cb(SSL_CTX*, void (*f)(SSL_CTX*, SSL_SESSION*)); |
toddouska | 0:5045d2638c29 | 590 | |
toddouska | 0:5045d2638c29 | 591 | int i2d_SSL_SESSION(SSL_SESSION*, unsigned char**); |
toddouska | 0:5045d2638c29 | 592 | SSL_SESSION* d2i_SSL_SESSION(SSL_SESSION**,const unsigned char**, long); |
toddouska | 0:5045d2638c29 | 593 | |
toddouska | 0:5045d2638c29 | 594 | long SSL_SESSION_get_timeout(const SSL_SESSION*); |
toddouska | 0:5045d2638c29 | 595 | long SSL_SESSION_get_time(const SSL_SESSION*); |
toddouska | 0:5045d2638c29 | 596 | int SSL_CTX_get_ex_new_index(long, void*, void*, void*, void*); |
toddouska | 0:5045d2638c29 | 597 | |
toddouska | 0:5045d2638c29 | 598 | /* extra ends */ |
toddouska | 0:5045d2638c29 | 599 | |
toddouska | 0:5045d2638c29 | 600 | |
toddouska | 0:5045d2638c29 | 601 | /* CyaSSL extensions */ |
toddouska | 0:5045d2638c29 | 602 | |
toddouska | 0:5045d2638c29 | 603 | /* call before SSL_connect, if verifying will add name check to |
toddouska | 0:5045d2638c29 | 604 | date check and signature check */ |
toddouska | 0:5045d2638c29 | 605 | int CyaSSL_check_domain_name(SSL* ssl, const char* dn); |
toddouska | 0:5045d2638c29 | 606 | |
toddouska | 0:5045d2638c29 | 607 | int InitCyaSSL(void); /* need to call once to load library (session cache) */ |
toddouska | 0:5045d2638c29 | 608 | int FreeCyaSSL(void); /* call when done to free session cache mutex */ |
toddouska | 0:5045d2638c29 | 609 | |
toddouska | 0:5045d2638c29 | 610 | int CyaSSL_Debugging_ON(void); /* turn logging on, only if compiled in */ |
toddouska | 0:5045d2638c29 | 611 | void CyaSSL_Debugging_OFF(void); /* turn logging off */ |
toddouska | 0:5045d2638c29 | 612 | |
toddouska | 0:5045d2638c29 | 613 | int CyaSSL_set_compression(SSL* ssl); /* turn on CyaSSL data compression */ |
toddouska | 0:5045d2638c29 | 614 | |
toddouska | 0:5045d2638c29 | 615 | int CyaSSL_CTX_use_NTRUPrivateKey_file(SSL_CTX*, const char*); /* load NTRU |
toddouska | 0:5045d2638c29 | 616 | private key blob */ |
toddouska | 0:5045d2638c29 | 617 | X509_CHAIN* CyaSSL_get_peer_chain(SSL* ssl); /* get CyaSSL peer X509_CHAIN */ |
toddouska | 0:5045d2638c29 | 618 | int CyaSSL_get_chain_count(X509_CHAIN* chain); /* peer chain count */ |
toddouska | 0:5045d2638c29 | 619 | int CyaSSL_get_chain_length(X509_CHAIN*, int idx); /* index cert length */ |
toddouska | 0:5045d2638c29 | 620 | unsigned char* CyaSSL_get_chain_cert(X509_CHAIN*, int idx); /* index cert */ |
toddouska | 0:5045d2638c29 | 621 | int CyaSSL_get_chain_cert_pem(X509_CHAIN*, int idx, unsigned char* buffer, |
toddouska | 0:5045d2638c29 | 622 | int inLen, int* outLen); /* get index cert in PEM */ |
toddouska | 0:5045d2638c29 | 623 | const unsigned char* CyaSSL_get_sessionID(const SSL_SESSION* session); |
toddouska | 0:5045d2638c29 | 624 | |
toddouska | 0:5045d2638c29 | 625 | #ifndef _WIN32 |
toddouska | 0:5045d2638c29 | 626 | #ifndef NO_WRITEV |
toddouska | 0:5045d2638c29 | 627 | #include <sys/uio.h> |
toddouska | 0:5045d2638c29 | 628 | /* allow writev style writing */ |
toddouska | 0:5045d2638c29 | 629 | int CyaSSL_writev(SSL* ssl, const struct iovec* iov, int iovcnt); |
toddouska | 0:5045d2638c29 | 630 | #endif |
toddouska | 0:5045d2638c29 | 631 | #endif |
toddouska | 0:5045d2638c29 | 632 | |
toddouska | 0:5045d2638c29 | 633 | #if defined(NO_FILESYSTEM) || defined(MICRIUM) |
toddouska | 0:5045d2638c29 | 634 | |
toddouska | 0:5045d2638c29 | 635 | int CyaSSL_CTX_load_verify_buffer(SSL_CTX*, const unsigned char*, long, int); |
toddouska | 0:5045d2638c29 | 636 | int CyaSSL_CTX_use_certificate_buffer(SSL_CTX*, const unsigned char*, long,int); |
toddouska | 0:5045d2638c29 | 637 | int CyaSSL_CTX_use_PrivateKey_buffer(SSL_CTX*, const unsigned char*, long, int); |
toddouska | 0:5045d2638c29 | 638 | int CyaSSL_CTX_use_certificate_chain_buffer(SSL_CTX*,const unsigned char*,long); |
toddouska | 0:5045d2638c29 | 639 | |
toddouska | 0:5045d2638c29 | 640 | #endif /* NO_FILESYSTEM || MICRIUM */ |
toddouska | 0:5045d2638c29 | 641 | |
toddouska | 0:5045d2638c29 | 642 | |
toddouska | 0:5045d2638c29 | 643 | /* I/O callbacks */ |
toddouska | 0:5045d2638c29 | 644 | typedef int (*CallbackIORecv)(char *buf, int sz, void *ctx); |
toddouska | 0:5045d2638c29 | 645 | typedef int (*CallbackIOSend)(char *buf, int sz, void *ctx); |
toddouska | 0:5045d2638c29 | 646 | |
toddouska | 0:5045d2638c29 | 647 | void CyaSSL_SetIORecv(SSL_CTX*, CallbackIORecv); |
toddouska | 0:5045d2638c29 | 648 | void CyaSSL_SetIOSend(SSL_CTX*, CallbackIOSend); |
toddouska | 0:5045d2638c29 | 649 | |
toddouska | 0:5045d2638c29 | 650 | void CyaSSL_SetIOReadCtx(SSL* ssl, void *ctx); |
toddouska | 0:5045d2638c29 | 651 | void CyaSSL_SetIOWriteCtx(SSL* ssl, void *ctx); |
toddouska | 0:5045d2638c29 | 652 | |
toddouska | 0:5045d2638c29 | 653 | |
toddouska | 0:5045d2638c29 | 654 | #ifdef CYASSL_CALLBACKS |
toddouska | 0:5045d2638c29 | 655 | |
toddouska | 0:5045d2638c29 | 656 | /* used internally by CyaSSL while OpenSSL types aren't */ |
toddouska | 0:5045d2638c29 | 657 | #include "cyassl_callbacks.h" |
toddouska | 0:5045d2638c29 | 658 | |
toddouska | 0:5045d2638c29 | 659 | typedef int (*HandShakeCallBack)(HandShakeInfo*); |
toddouska | 0:5045d2638c29 | 660 | typedef int (*TimeoutCallBack)(TimeoutInfo*); |
toddouska | 0:5045d2638c29 | 661 | |
toddouska | 0:5045d2638c29 | 662 | /* CyaSSL connect extension allowing HandShakeCallBack and/or TimeoutCallBack |
toddouska | 0:5045d2638c29 | 663 | for diagnostics */ |
toddouska | 0:5045d2638c29 | 664 | int CyaSSL_connect_ex(SSL*, HandShakeCallBack, TimeoutCallBack, Timeval); |
toddouska | 0:5045d2638c29 | 665 | int CyaSSL_accept_ex(SSL*, HandShakeCallBack, TimeoutCallBack, Timeval); |
toddouska | 0:5045d2638c29 | 666 | |
toddouska | 0:5045d2638c29 | 667 | #endif /* CYASSL_CALLBACKS */ |
toddouska | 0:5045d2638c29 | 668 | |
toddouska | 0:5045d2638c29 | 669 | |
toddouska | 0:5045d2638c29 | 670 | #ifdef __cplusplus |
toddouska | 0:5045d2638c29 | 671 | } /* extern "C" */ |
toddouska | 0:5045d2638c29 | 672 | #endif |
toddouska | 0:5045d2638c29 | 673 | |
toddouska | 0:5045d2638c29 | 674 | |
toddouska | 0:5045d2638c29 | 675 | #endif /* CyaSSL_openssl_h__ */ |