Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of wolfSSL by
evp.h
00001 /* evp.h 00002 * 00003 * Copyright (C) 2006-2016 wolfSSL Inc. 00004 * 00005 * This file is part of wolfSSL. 00006 * 00007 * wolfSSL is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2 of the License, or 00010 * (at your option) any later version. 00011 * 00012 * wolfSSL is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA 00020 */ 00021 00022 00023 00024 /* evp.h defines mini evp openssl compatibility layer 00025 * 00026 */ 00027 00028 00029 #ifndef WOLFSSL_EVP_H_ 00030 #define WOLFSSL_EVP_H_ 00031 00032 #include <wolfssl/wolfcrypt/settings.h> 00033 00034 #ifdef WOLFSSL_PREFIX 00035 #include "prefix_evp.h" 00036 #endif 00037 00038 #ifndef NO_MD5 00039 #include <wolfssl/openssl/md5.h> 00040 #endif 00041 #include <wolfssl/openssl/sha.h> 00042 #include <wolfssl/openssl/ripemd.h> 00043 #include <wolfssl/openssl/rsa.h> 00044 #include <wolfssl/openssl/dsa.h> 00045 #include <wolfssl/openssl/ec.h> 00046 00047 #include <wolfssl/wolfcrypt/aes.h> 00048 #include <wolfssl/wolfcrypt/des3.h> 00049 #include <wolfssl/wolfcrypt/arc4.h> 00050 #ifdef HAVE_IDEA 00051 #include <wolfssl/wolfcrypt/idea.h> 00052 #endif 00053 00054 #ifdef __cplusplus 00055 extern "C" { 00056 #endif 00057 00058 typedef char WOLFSSL_EVP_CIPHER; 00059 typedef char WOLFSSL_EVP_MD; 00060 00061 #ifndef NO_MD5 00062 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_md5(void); 00063 #endif 00064 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha1(void); 00065 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha224(void); 00066 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha256(void); 00067 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha384(void); 00068 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha512(void); 00069 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_ripemd160(void); 00070 00071 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_ecb(void); 00072 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_ecb(void); 00073 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_ecb(void); 00074 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cbc(void); 00075 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cbc(void); 00076 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cbc(void); 00077 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_ctr(void); 00078 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_ctr(void); 00079 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_ctr(void); 00080 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ecb(void); 00081 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ede3_ecb(void); 00082 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_cbc(void); 00083 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ede3_cbc(void); 00084 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_rc4(void); 00085 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_idea_cbc(void); 00086 WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_enc_null(void); 00087 00088 00089 typedef union { 00090 #ifndef NO_MD5 00091 WOLFSSL_MD5_CTX md5; 00092 #endif 00093 WOLFSSL_SHA_CTX sha; 00094 #ifdef WOLFSSL_SHA224 00095 WOLFSSL_SHA224_CTX sha224; 00096 #endif 00097 WOLFSSL_SHA256_CTX sha256; 00098 #ifdef WOLFSSL_SHA384 00099 WOLFSSL_SHA384_CTX sha384; 00100 #endif 00101 #ifdef WOLFSSL_SHA512 00102 WOLFSSL_SHA512_CTX sha512; 00103 #endif 00104 #ifdef WOLFSSL_RIPEMD 00105 WOLFSSL_RIPEMD_CTX ripemd; 00106 #endif 00107 } WOLFSSL_Hasher; 00108 00109 00110 typedef struct WOLFSSL_EVP_MD_CTX { 00111 WOLFSSL_Hasher hash; 00112 unsigned char macType; 00113 } WOLFSSL_EVP_MD_CTX; 00114 00115 00116 typedef union { 00117 #ifndef NO_AES 00118 Aes aes; 00119 #endif 00120 #ifndef NO_DES3 00121 Des des; 00122 Des3 des3; 00123 #endif 00124 Arc4 arc4; 00125 #ifdef HAVE_IDEA 00126 Idea idea; 00127 #endif 00128 } WOLFSSL_Cipher; 00129 00130 00131 enum { 00132 AES_128_CBC_TYPE = 1, 00133 AES_192_CBC_TYPE = 2, 00134 AES_256_CBC_TYPE = 3, 00135 AES_128_CTR_TYPE = 4, 00136 AES_192_CTR_TYPE = 5, 00137 AES_256_CTR_TYPE = 6, 00138 AES_128_ECB_TYPE = 7, 00139 AES_192_ECB_TYPE = 8, 00140 AES_256_ECB_TYPE = 9, 00141 DES_CBC_TYPE = 10, 00142 DES_ECB_TYPE = 11, 00143 DES_EDE3_CBC_TYPE = 12, 00144 DES_EDE3_ECB_TYPE = 13, 00145 ARC4_TYPE = 14, 00146 NULL_CIPHER_TYPE = 15, 00147 EVP_PKEY_RSA = 16, 00148 EVP_PKEY_DSA = 17, 00149 EVP_PKEY_EC = 18, 00150 IDEA_CBC_TYPE = 19, 00151 NID_sha1 = 64, 00152 NID_md2 = 3, 00153 NID_md5 = 4 00154 }; 00155 00156 #define WOLFSSL_EVP_BUF_SIZE 16 00157 typedef struct WOLFSSL_EVP_CIPHER_CTX { 00158 int keyLen; /* user may set for variable */ 00159 int block_size; 00160 unsigned long flags; 00161 unsigned char enc; /* if encrypt side, then true */ 00162 unsigned char cipherType; 00163 #ifndef NO_AES 00164 /* working iv pointer into cipher */ 00165 ALIGN16 unsigned char iv[AES_BLOCK_SIZE]; 00166 #elif !defined(NO_DES3) 00167 /* working iv pointer into cipher */ 00168 ALIGN16 unsigned char iv[DES_BLOCK_SIZE]; 00169 #endif 00170 WOLFSSL_Cipher cipher; 00171 ALIGN16 byte buf[WOLFSSL_EVP_BUF_SIZE]; 00172 int bufUsed; 00173 ALIGN16 byte lastBlock[WOLFSSL_EVP_BUF_SIZE]; 00174 int lastUsed; 00175 } WOLFSSL_EVP_CIPHER_CTX; 00176 00177 00178 #ifndef WOLFSSL_EVP_PKEY_TYPE_DEFINED /* guard on redeclaration */ 00179 typedef struct WOLFSSL_EVP_PKEY WOLFSSL_EVP_PKEY; 00180 #define WOLFSSL_EVP_PKEY_TYPE_DEFINED 00181 #endif 00182 00183 struct WOLFSSL_EVP_PKEY { 00184 int type; /* openssh dereference */ 00185 int save_type; /* openssh dereference */ 00186 int pkey_sz; 00187 union { 00188 char* ptr; /* der format of key / or raw for NTRU */ 00189 } pkey; 00190 #ifdef HAVE_ECC 00191 int pkey_curve; 00192 #endif 00193 }; 00194 00195 typedef int WOLFSSL_ENGINE ; 00196 typedef WOLFSSL_ENGINE ENGINE; 00197 00198 WOLFSSL_API void wolfSSL_EVP_init(void); 00199 WOLFSSL_API int wolfSSL_EVP_MD_size(const WOLFSSL_EVP_MD* md); 00200 WOLFSSL_API int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md); 00201 00202 WOLFSSL_API WOLFSSL_EVP_MD_CTX *wolfSSL_EVP_MD_CTX_new (void); 00203 WOLFSSL_API void wolfSSL_EVP_MD_CTX_free(WOLFSSL_EVP_MD_CTX* ctx); 00204 WOLFSSL_API void wolfSSL_EVP_MD_CTX_init(WOLFSSL_EVP_MD_CTX* ctx); 00205 WOLFSSL_API int wolfSSL_EVP_MD_CTX_cleanup(WOLFSSL_EVP_MD_CTX* ctx); 00206 WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_EVP_MD_CTX_md(const WOLFSSL_EVP_MD_CTX *ctx); 00207 WOLFSSL_API const WOLFSSL_EVP_CIPHER *wolfSSL_EVP_get_cipherbyname(const char *name); 00208 WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_EVP_get_digestbyname(const char *name); 00209 00210 WOLFSSL_API int wolfSSL_EVP_DigestInit(WOLFSSL_EVP_MD_CTX* ctx, 00211 const WOLFSSL_EVP_MD* type); 00212 WOLFSSL_API int wolfSSL_EVP_DigestInit_ex(WOLFSSL_EVP_MD_CTX* ctx, 00213 const WOLFSSL_EVP_MD* type, 00214 WOLFSSL_ENGINE *impl); 00215 WOLFSSL_API int wolfSSL_EVP_DigestUpdate(WOLFSSL_EVP_MD_CTX* ctx, const void* data, 00216 unsigned long sz); 00217 WOLFSSL_API int wolfSSL_EVP_DigestFinal(WOLFSSL_EVP_MD_CTX* ctx, unsigned char* md, 00218 unsigned int* s); 00219 WOLFSSL_API int wolfSSL_EVP_DigestFinal_ex(WOLFSSL_EVP_MD_CTX* ctx, 00220 unsigned char* md, unsigned int* s); 00221 #ifndef NO_MD5 00222 WOLFSSL_API int wolfSSL_EVP_BytesToKey(const WOLFSSL_EVP_CIPHER*, 00223 const WOLFSSL_EVP_MD*, const unsigned char*, 00224 const unsigned char*, int, int, unsigned char*, 00225 unsigned char*); 00226 #endif 00227 00228 WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_init(WOLFSSL_EVP_CIPHER_CTX* ctx); 00229 WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_cleanup(WOLFSSL_EVP_CIPHER_CTX* ctx); 00230 00231 WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_iv_length(const WOLFSSL_EVP_CIPHER_CTX*); 00232 WOLFSSL_API int wolfSSL_EVP_CIPHER_iv_length(const WOLFSSL_EVP_CIPHER*); 00233 00234 00235 WOLFSSL_API int wolfSSL_EVP_CipherInit(WOLFSSL_EVP_CIPHER_CTX* ctx, 00236 const WOLFSSL_EVP_CIPHER* type, 00237 unsigned char* key, unsigned char* iv, 00238 int enc); 00239 WOLFSSL_API int wolfSSL_EVP_CipherInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, 00240 const WOLFSSL_EVP_CIPHER* type, 00241 WOLFSSL_ENGINE *impl, 00242 unsigned char* key, unsigned char* iv, 00243 int enc); 00244 WOLFSSL_API int wolfSSL_EVP_EncryptInit(WOLFSSL_EVP_CIPHER_CTX* ctx, 00245 const WOLFSSL_EVP_CIPHER* type, 00246 unsigned char* key, unsigned char* iv); 00247 WOLFSSL_API int wolfSSL_EVP_EncryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, 00248 const WOLFSSL_EVP_CIPHER* type, 00249 WOLFSSL_ENGINE *impl, 00250 unsigned char* key, unsigned char* iv); 00251 WOLFSSL_API int wolfSSL_EVP_DecryptInit(WOLFSSL_EVP_CIPHER_CTX* ctx, 00252 const WOLFSSL_EVP_CIPHER* type, 00253 unsigned char* key, unsigned char* iv); 00254 WOLFSSL_API int wolfSSL_EVP_DecryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, 00255 const WOLFSSL_EVP_CIPHER* type, 00256 WOLFSSL_ENGINE *impl, 00257 unsigned char* key, unsigned char* iv); 00258 WOLFSSL_API int wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX *ctx, 00259 unsigned char *out, int *outl, 00260 const unsigned char *in, int inl); 00261 WOLFSSL_API int wolfSSL_EVP_CipherFinal(WOLFSSL_EVP_CIPHER_CTX *ctx, 00262 unsigned char *out, int *outl); 00263 WOLFSSL_API int wolfSSL_EVP_CipherFinal_ex(WOLFSSL_EVP_CIPHER_CTX *ctx, 00264 unsigned char *out, int *outl, int enc); 00265 WOLFSSL_API int wolfSSL_EVP_EncryptFinal(WOLFSSL_EVP_CIPHER_CTX *ctx, 00266 unsigned char *out, int *outl); 00267 WOLFSSL_API int wolfSSL_EVP_EncryptFinal_ex(WOLFSSL_EVP_CIPHER_CTX *ctx, 00268 unsigned char *out, int *outl); 00269 WOLFSSL_API int wolfSSL_EVP_DecryptFinal(WOLFSSL_EVP_CIPHER_CTX *ctx, 00270 unsigned char *out, int *outl); 00271 WOLFSSL_API int wolfSSL_EVP_DecryptFinal_ex(WOLFSSL_EVP_CIPHER_CTX *ctx, 00272 unsigned char *out, int *outl); 00273 00274 WOLFSSL_API WOLFSSL_EVP_CIPHER_CTX *wolfSSL_EVP_CIPHER_CTX_new(void); 00275 WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_free(WOLFSSL_EVP_CIPHER_CTX *ctx); 00276 WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_key_length(WOLFSSL_EVP_CIPHER_CTX* ctx); 00277 WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_set_key_length(WOLFSSL_EVP_CIPHER_CTX* ctx, 00278 int keylen); 00279 WOLFSSL_API int wolfSSL_EVP_Cipher(WOLFSSL_EVP_CIPHER_CTX* ctx, 00280 unsigned char* dst, unsigned char* src, 00281 unsigned int len); 00282 00283 WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_get_digestbynid(int); 00284 00285 WOLFSSL_API WOLFSSL_RSA* wolfSSL_EVP_PKEY_get1_RSA(WOLFSSL_EVP_PKEY*); 00286 WOLFSSL_API WOLFSSL_DSA* wolfSSL_EVP_PKEY_get1_DSA(WOLFSSL_EVP_PKEY*); 00287 WOLFSSL_API WOLFSSL_EC_KEY *wolfSSL_EVP_PKEY_get1_EC_KEY(WOLFSSL_EVP_PKEY *key); 00288 00289 /* these next ones don't need real OpenSSL type, for OpenSSH compat only */ 00290 WOLFSSL_API void* wolfSSL_EVP_X_STATE(const WOLFSSL_EVP_CIPHER_CTX* ctx); 00291 WOLFSSL_API int wolfSSL_EVP_X_STATE_LEN(const WOLFSSL_EVP_CIPHER_CTX* ctx); 00292 00293 WOLFSSL_API void wolfSSL_3des_iv(WOLFSSL_EVP_CIPHER_CTX* ctx, int doset, 00294 unsigned char* iv, int len); 00295 WOLFSSL_API void wolfSSL_aes_ctr_iv(WOLFSSL_EVP_CIPHER_CTX* ctx, int doset, 00296 unsigned char* iv, int len); 00297 00298 WOLFSSL_API int wolfSSL_StoreExternalIV(WOLFSSL_EVP_CIPHER_CTX* ctx); 00299 WOLFSSL_API int wolfSSL_SetInternalIV(WOLFSSL_EVP_CIPHER_CTX* ctx); 00300 00301 WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_block_size(const WOLFSSL_EVP_CIPHER_CTX *ctx); 00302 WOLFSSL_API int wolfSSL_EVP_CIPHER_block_size(const WOLFSSL_EVP_CIPHER *cipher); 00303 WOLFSSL_API unsigned long WOLFSSL_EVP_CIPHER_mode(const WOLFSSL_EVP_CIPHER *cipher); 00304 WOLFSSL_API unsigned long WOLFSSL_CIPHER_mode(const WOLFSSL_EVP_CIPHER *cipher); 00305 WOLFSSL_API unsigned long wolfSSL_EVP_CIPHER_flags(const WOLFSSL_EVP_CIPHER *cipher); 00306 WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_set_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags); 00307 WOLFSSL_API unsigned long wolfSSL_EVP_CIPHER_CTX_mode(const WOLFSSL_EVP_CIPHER_CTX *ctx); 00308 WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX *c, int pad); 00309 WOLFSSL_API int wolfSSL_EVP_add_digest(const WOLFSSL_EVP_MD *digest); 00310 00311 #define EVP_CIPH_STREAM_CIPHER WOLFSSL_EVP_CIPH_STREAM_CIPHER 00312 #define EVP_CIPH_ECB_MODE WOLFSSL_EVP_CIPH_ECB_MODE 00313 #define EVP_CIPH_CBC_MODE WOLFSSL_EVP_CIPH_CBC_MODE 00314 #define EVP_CIPH_CFB_MODE WOLFSSL_EVP_CIPH_CFB_MODE 00315 #define EVP_CIPH_OFB_MODE WOLFSSL_EVP_CIPH_OFB_MODE 00316 #define EVP_CIPH_CTR_MODE WOLFSSL_EVP_CIPH_CTR_MODE 00317 #define EVP_CIPH_GCM_MODE WOLFSSL_EVP_CIPH_GCM_MODE 00318 #define EVP_CIPH_CCM_MODE WOLFSSL_EVP_CIPH_CCM_MODE 00319 00320 #define WOLFSSL_EVP_CIPH_MODE 0x0007 00321 #define WOLFSSL_EVP_CIPH_STREAM_CIPHER 0x0 00322 #define WOLFSSL_EVP_CIPH_ECB_MODE 0x1 00323 #define WOLFSSL_EVP_CIPH_CBC_MODE 0x2 00324 #define WOLFSSL_EVP_CIPH_CFB_MODE 0x3 00325 #define WOLFSSL_EVP_CIPH_OFB_MODE 0x4 00326 #define WOLFSSL_EVP_CIPH_CTR_MODE 0x5 00327 #define WOLFSSL_EVP_CIPH_GCM_MODE 0x6 00328 #define WOLFSSL_EVP_CIPH_CCM_MODE 0x7 00329 #define WOLFSSL_EVP_CIPH_NO_PADDING 0x100 00330 00331 /* end OpenSSH compat */ 00332 00333 typedef WOLFSSL_EVP_MD EVP_MD; 00334 typedef WOLFSSL_EVP_CIPHER EVP_CIPHER; 00335 typedef WOLFSSL_EVP_MD_CTX EVP_MD_CTX; 00336 typedef WOLFSSL_EVP_CIPHER_CTX EVP_CIPHER_CTX; 00337 00338 #ifndef NO_MD5 00339 #define EVP_md5 wolfSSL_EVP_md5 00340 #endif 00341 #define EVP_sha1 wolfSSL_EVP_sha1 00342 #define EVP_sha224 wolfSSL_EVP_sha224 00343 #define EVP_sha256 wolfSSL_EVP_sha256 00344 #define EVP_sha384 wolfSSL_EVP_sha384 00345 #define EVP_sha512 wolfSSL_EVP_sha512 00346 #define EVP_ripemd160 wolfSSL_EVP_ripemd160 00347 00348 #define EVP_aes_128_cbc wolfSSL_EVP_aes_128_cbc 00349 #define EVP_aes_192_cbc wolfSSL_EVP_aes_192_cbc 00350 #define EVP_aes_256_cbc wolfSSL_EVP_aes_256_cbc 00351 #define EVP_aes_128_ecb wolfSSL_EVP_aes_128_ecb 00352 #define EVP_aes_192_ecb wolfSSL_EVP_aes_192_ecb 00353 #define EVP_aes_256_ecb wolfSSL_EVP_aes_256_ecb 00354 #define EVP_aes_128_ctr wolfSSL_EVP_aes_128_ctr 00355 #define EVP_aes_192_ctr wolfSSL_EVP_aes_192_ctr 00356 #define EVP_aes_256_ctr wolfSSL_EVP_aes_256_ctr 00357 #define EVP_des_cbc wolfSSL_EVP_des_cbc 00358 #define EVP_des_ecb wolfSSL_EVP_des_ecb 00359 #define EVP_des_ede3_cbc wolfSSL_EVP_des_ede3_cbc 00360 #define EVP_des_ede3_ecb wolfSSL_EVP_des_ede3_ecb 00361 #define EVP_rc4 wolfSSL_EVP_rc4 00362 #define EVP_idea_cbc wolfSSL_EVP_idea_cbc 00363 #define EVP_enc_null wolfSSL_EVP_enc_null 00364 00365 #define EVP_MD_size wolfSSL_EVP_MD_size 00366 #define EVP_MD_CTX_new wolfSSL_EVP_MD_CTX_new 00367 #define EVP_MD_CTX_create wolfSSL_EVP_MD_CTX_new 00368 #define EVP_MD_CTX_free wolfSSL_EVP_MD_CTX_free 00369 #define EVP_MD_CTX_destroy wolfSSL_EVP_MD_CTX_free 00370 #define EVP_MD_CTX_init wolfSSL_EVP_MD_CTX_init 00371 #define EVP_MD_CTX_cleanup wolfSSL_EVP_MD_CTX_cleanup 00372 #define EVP_MD_CTX_md wolfSSL_EVP_MD_CTX_md 00373 #define EVP_MD_CTX_type wolfSSL_EVP_MD_type 00374 #define EVP_MD_type wolfSSL_EVP_MD_type 00375 00376 #define EVP_DigestInit wolfSSL_EVP_DigestInit 00377 #define EVP_DigestInit_ex wolfSSL_EVP_DigestInit_ex 00378 #define EVP_DigestUpdate wolfSSL_EVP_DigestUpdate 00379 #define EVP_DigestFinal wolfSSL_EVP_DigestFinal 00380 #define EVP_DigestFinal_ex wolfSSL_EVP_DigestFinal_ex 00381 #define EVP_BytesToKey wolfSSL_EVP_BytesToKey 00382 00383 #define EVP_get_cipherbyname wolfSSL_EVP_get_cipherbyname 00384 #define EVP_get_digestbyname wolfSSL_EVP_get_digestbyname 00385 00386 #define EVP_CIPHER_CTX_init wolfSSL_EVP_CIPHER_CTX_init 00387 #define EVP_CIPHER_CTX_cleanup wolfSSL_EVP_CIPHER_CTX_cleanup 00388 #define EVP_CIPHER_CTX_iv_length wolfSSL_EVP_CIPHER_CTX_iv_length 00389 #define EVP_CIPHER_CTX_key_length wolfSSL_EVP_CIPHER_CTX_key_length 00390 #define EVP_CIPHER_CTX_set_key_length wolfSSL_EVP_CIPHER_CTX_set_key_length 00391 #define EVP_CIPHER_CTX_mode wolfSSL_EVP_CIPHER_CTX_mode 00392 00393 #define EVP_CIPHER_iv_length wolfSSL_EVP_CIPHER_iv_length 00394 00395 #define EVP_CipherInit wolfSSL_EVP_CipherInit 00396 #define EVP_CipherInit_ex wolfSSL_EVP_CipherInit_ex 00397 #define EVP_EncryptInit wolfSSL_EVP_EncryptInit 00398 #define EVP_EncryptInit_ex wolfSSL_EVP_EncryptInit_ex 00399 #define EVP_DecryptInit wolfSSL_EVP_DecryptInit 00400 #define EVP_DecryptInit_ex wolfSSL_EVP_DecryptInit_ex 00401 00402 #define EVP_Cipher wolfSSL_EVP_Cipher 00403 #define EVP_CipherUpdate wolfSSL_EVP_CipherUpdate 00404 #define EVP_EncryptUpdate wolfSSL_EVP_CipherUpdate 00405 #define EVP_DecryptUpdate wolfSSL_EVP_CipherUpdate 00406 #define EVP_CipherFinal wolfSSL_EVP_CipherFinal 00407 #define EVP_CipherFinal_ex wolfSSL_EVP_CipherFinal 00408 #define EVP_EncryptFinal wolfSSL_EVP_CipherFinal 00409 #define EVP_EncryptFinal_ex wolfSSL_EVP_CipherFinal 00410 #define EVP_DecryptFinal wolfSSL_EVP_CipherFinal 00411 #define EVP_DecryptFinal_ex wolfSSL_EVP_CipherFinal 00412 00413 #define EVP_CIPHER_CTX_free wolfSSL_EVP_CIPHER_CTX_free 00414 #define EVP_CIPHER_CTX_new wolfSSL_EVP_CIPHER_CTX_new 00415 00416 #define EVP_get_digestbynid wolfSSL_EVP_get_digestbynid 00417 #define EVP_get_cipherbyname wolfSSL_EVP_get_cipherbyname 00418 #define EVP_get_digestbyname wolfSSL_EVP_get_digestbyname 00419 00420 #define EVP_PKEY_get1_RSA wolfSSL_EVP_PKEY_get1_RSA 00421 #define EVP_PKEY_get1_DSA wolfSSL_EVP_PKEY_get1_DSA 00422 #define EVP_PKEY_get1_EC_KEY wolfSSL_EVP_PKEY_get1_EC_KEY 00423 00424 #define EVP_CIPHER_CTX_block_size wolfSSL_EVP_CIPHER_CTX_block_size 00425 #define EVP_CIPHER_block_size wolfSSL_EVP_CIPHER_block_size 00426 #define EVP_CIPHER_flags wolfSSL_EVP_CIPHER_flags 00427 #define EVP_CIPHER_CTX_set_flags wolfSSL_EVP_CIPHER_CTX_set_flags 00428 #define EVP_CIPHER_CTX_set_padding wolfSSL_EVP_CIPHER_CTX_set_padding 00429 #define EVP_CIPHER_CTX_flags wolfSSL_EVP_CIPHER_CTX_flags 00430 #define EVP_add_digest wolfSSL_EVP_add_digest 00431 00432 #ifndef EVP_MAX_MD_SIZE 00433 #define EVP_MAX_MD_SIZE 64 /* sha512 */ 00434 #endif 00435 00436 #ifdef __cplusplus 00437 } /* extern "C" */ 00438 #endif 00439 00440 00441 #endif /* WOLFSSL_EVP_H_ */ 00442
Generated on Tue Jul 12 2022 23:30:55 by
 1.7.2 
    