168651Skris/* evp_locl.h */ 2296341Sdelphij/* 3296341Sdelphij * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project 4296341Sdelphij * 2000. 568651Skris */ 668651Skris/* ==================================================================== 768651Skris * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 868651Skris * 968651Skris * Redistribution and use in source and binary forms, with or without 1068651Skris * modification, are permitted provided that the following conditions 1168651Skris * are met: 1268651Skris * 1368651Skris * 1. Redistributions of source code must retain the above copyright 14296341Sdelphij * notice, this list of conditions and the following disclaimer. 1568651Skris * 1668651Skris * 2. Redistributions in binary form must reproduce the above copyright 1768651Skris * notice, this list of conditions and the following disclaimer in 1868651Skris * the documentation and/or other materials provided with the 1968651Skris * distribution. 2068651Skris * 2168651Skris * 3. All advertising materials mentioning features or use of this 2268651Skris * software must display the following acknowledgment: 2368651Skris * "This product includes software developed by the OpenSSL Project 2468651Skris * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 2568651Skris * 2668651Skris * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 2768651Skris * endorse or promote products derived from this software without 2868651Skris * prior written permission. For written permission, please contact 2968651Skris * licensing@OpenSSL.org. 3068651Skris * 3168651Skris * 5. Products derived from this software may not be called "OpenSSL" 3268651Skris * nor may "OpenSSL" appear in their names without prior written 3368651Skris * permission of the OpenSSL Project. 3468651Skris * 3568651Skris * 6. Redistributions of any form whatsoever must retain the following 3668651Skris * acknowledgment: 3768651Skris * "This product includes software developed by the OpenSSL Project 3868651Skris * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 3968651Skris * 4068651Skris * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 4168651Skris * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 4268651Skris * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 4368651Skris * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 4468651Skris * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 4568651Skris * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 4668651Skris * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 4768651Skris * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 4868651Skris * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 4968651Skris * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 5068651Skris * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 5168651Skris * OF THE POSSIBILITY OF SUCH DAMAGE. 5268651Skris * ==================================================================== 5368651Skris * 5468651Skris * This product includes cryptographic software written by Eric Young 5568651Skris * (eay@cryptsoft.com). This product includes software written by Tim 5668651Skris * Hudson (tjh@cryptsoft.com). 5768651Skris * 5868651Skris */ 5968651Skris 6068651Skris/* Macros to code block cipher wrappers */ 6168651Skris 6268651Skris/* Wrapper functions for each cipher mode */ 6368651Skris 6468651Skris#define BLOCK_CIPHER_ecb_loop() \ 65296341Sdelphij size_t i, bl; \ 66296341Sdelphij bl = ctx->cipher->block_size;\ 67296341Sdelphij if(inl < bl) return 1;\ 68296341Sdelphij inl -= bl; \ 69296341Sdelphij for(i=0; i <= inl; i+=bl) 7068651Skris 71109998Smarkm#define BLOCK_CIPHER_func_ecb(cname, cprefix, kstruct, ksched) \ 72238405Sjkimstatic int cname##_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) \ 7368651Skris{\ 74296341Sdelphij BLOCK_CIPHER_ecb_loop() \ 75296341Sdelphij cprefix##_ecb_encrypt(in + i, out + i, &((kstruct *)ctx->cipher_data)->ksched, ctx->encrypt);\ 76296341Sdelphij return 1;\ 7768651Skris} 7868651Skris 79238405Sjkim#define EVP_MAXCHUNK ((size_t)1<<(sizeof(long)*8-2)) 80238405Sjkim 81109998Smarkm#define BLOCK_CIPHER_func_ofb(cname, cprefix, cbits, kstruct, ksched) \ 82238405Sjkimstatic int cname##_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) \ 8368651Skris{\ 84296341Sdelphij while(inl>=EVP_MAXCHUNK)\ 85296341Sdelphij {\ 86296341Sdelphij cprefix##_ofb##cbits##_encrypt(in, out, (long)EVP_MAXCHUNK, &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, &ctx->num);\ 87296341Sdelphij inl-=EVP_MAXCHUNK;\ 88296341Sdelphij in +=EVP_MAXCHUNK;\ 89296341Sdelphij out+=EVP_MAXCHUNK;\ 90296341Sdelphij }\ 91296341Sdelphij if (inl)\ 92296341Sdelphij cprefix##_ofb##cbits##_encrypt(in, out, (long)inl, &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, &ctx->num);\ 93296341Sdelphij return 1;\ 9468651Skris} 9568651Skris 96109998Smarkm#define BLOCK_CIPHER_func_cbc(cname, cprefix, kstruct, ksched) \ 97238405Sjkimstatic int cname##_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) \ 9868651Skris{\ 99296341Sdelphij while(inl>=EVP_MAXCHUNK) \ 100296341Sdelphij {\ 101296341Sdelphij cprefix##_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, ctx->encrypt);\ 102296341Sdelphij inl-=EVP_MAXCHUNK;\ 103296341Sdelphij in +=EVP_MAXCHUNK;\ 104296341Sdelphij out+=EVP_MAXCHUNK;\ 105296341Sdelphij }\ 106296341Sdelphij if (inl)\ 107296341Sdelphij cprefix##_cbc_encrypt(in, out, (long)inl, &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, ctx->encrypt);\ 108296341Sdelphij return 1;\ 10968651Skris} 11068651Skris 111109998Smarkm#define BLOCK_CIPHER_func_cfb(cname, cprefix, cbits, kstruct, ksched) \ 112238405Sjkimstatic int cname##_cfb##cbits##_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) \ 11368651Skris{\ 114296341Sdelphij size_t chunk=EVP_MAXCHUNK;\ 115296341Sdelphij if (cbits==1) chunk>>=3;\ 116296341Sdelphij if (inl<chunk) chunk=inl;\ 117296341Sdelphij while(inl && inl>=chunk)\ 118296341Sdelphij {\ 119238405Sjkim cprefix##_cfb##cbits##_encrypt(in, out, (long)((cbits==1) && !(ctx->flags & EVP_CIPH_FLAG_LENGTH_BITS) ?inl*8:inl), &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, &ctx->num, ctx->encrypt);\ 120296341Sdelphij inl-=chunk;\ 121296341Sdelphij in +=chunk;\ 122296341Sdelphij out+=chunk;\ 123296341Sdelphij if(inl<chunk) chunk=inl;\ 124296341Sdelphij }\ 125296341Sdelphij return 1;\ 12668651Skris} 12768651Skris 128109998Smarkm#define BLOCK_CIPHER_all_funcs(cname, cprefix, cbits, kstruct, ksched) \ 129296341Sdelphij BLOCK_CIPHER_func_cbc(cname, cprefix, kstruct, ksched) \ 130296341Sdelphij BLOCK_CIPHER_func_cfb(cname, cprefix, cbits, kstruct, ksched) \ 131296341Sdelphij BLOCK_CIPHER_func_ecb(cname, cprefix, kstruct, ksched) \ 132296341Sdelphij BLOCK_CIPHER_func_ofb(cname, cprefix, cbits, kstruct, ksched) 13368651Skris 134109998Smarkm#define BLOCK_CIPHER_def1(cname, nmode, mode, MODE, kstruct, nid, block_size, \ 135296341Sdelphij key_len, iv_len, flags, init_key, cleanup, \ 136296341Sdelphij set_asn1, get_asn1, ctrl) \ 137109998Smarkmstatic const EVP_CIPHER cname##_##mode = { \ 138296341Sdelphij nid##_##nmode, block_size, key_len, iv_len, \ 139296341Sdelphij flags | EVP_CIPH_##MODE##_MODE, \ 140296341Sdelphij init_key, \ 141296341Sdelphij cname##_##mode##_cipher, \ 142296341Sdelphij cleanup, \ 143296341Sdelphij sizeof(kstruct), \ 144296341Sdelphij set_asn1, get_asn1,\ 145296341Sdelphij ctrl, \ 146296341Sdelphij NULL \ 147109998Smarkm}; \ 148109998Smarkmconst EVP_CIPHER *EVP_##cname##_##mode(void) { return &cname##_##mode; } 149109998Smarkm 150109998Smarkm#define BLOCK_CIPHER_def_cbc(cname, kstruct, nid, block_size, key_len, \ 151296341Sdelphij iv_len, flags, init_key, cleanup, set_asn1, \ 152296341Sdelphij get_asn1, ctrl) \ 153109998SmarkmBLOCK_CIPHER_def1(cname, cbc, cbc, CBC, kstruct, nid, block_size, key_len, \ 154296341Sdelphij iv_len, flags, init_key, cleanup, set_asn1, get_asn1, ctrl) 155109998Smarkm 156109998Smarkm#define BLOCK_CIPHER_def_cfb(cname, kstruct, nid, key_len, \ 157296341Sdelphij iv_len, cbits, flags, init_key, cleanup, \ 158296341Sdelphij set_asn1, get_asn1, ctrl) \ 159206046SsimonBLOCK_CIPHER_def1(cname, cfb##cbits, cfb##cbits, CFB, kstruct, nid, 1, \ 160296341Sdelphij key_len, iv_len, flags, init_key, cleanup, set_asn1, \ 161296341Sdelphij get_asn1, ctrl) 162109998Smarkm 163109998Smarkm#define BLOCK_CIPHER_def_ofb(cname, kstruct, nid, key_len, \ 164296341Sdelphij iv_len, cbits, flags, init_key, cleanup, \ 165296341Sdelphij set_asn1, get_asn1, ctrl) \ 166109998SmarkmBLOCK_CIPHER_def1(cname, ofb##cbits, ofb, OFB, kstruct, nid, 1, \ 167296341Sdelphij key_len, iv_len, flags, init_key, cleanup, set_asn1, \ 168296341Sdelphij get_asn1, ctrl) 169109998Smarkm 170109998Smarkm#define BLOCK_CIPHER_def_ecb(cname, kstruct, nid, block_size, key_len, \ 171296341Sdelphij flags, init_key, cleanup, set_asn1, \ 172296341Sdelphij get_asn1, ctrl) \ 173109998SmarkmBLOCK_CIPHER_def1(cname, ecb, ecb, ECB, kstruct, nid, block_size, key_len, \ 174296341Sdelphij 0, flags, init_key, cleanup, set_asn1, get_asn1, ctrl) 175109998Smarkm 17668651Skris#define BLOCK_CIPHER_defs(cname, kstruct, \ 177296341Sdelphij nid, block_size, key_len, iv_len, cbits, flags, \ 178296341Sdelphij init_key, cleanup, set_asn1, get_asn1, ctrl) \ 179109998SmarkmBLOCK_CIPHER_def_cbc(cname, kstruct, nid, block_size, key_len, iv_len, flags, \ 180296341Sdelphij init_key, cleanup, set_asn1, get_asn1, ctrl) \ 181109998SmarkmBLOCK_CIPHER_def_cfb(cname, kstruct, nid, key_len, iv_len, cbits, \ 182296341Sdelphij flags, init_key, cleanup, set_asn1, get_asn1, ctrl) \ 183109998SmarkmBLOCK_CIPHER_def_ofb(cname, kstruct, nid, key_len, iv_len, cbits, \ 184296341Sdelphij flags, init_key, cleanup, set_asn1, get_asn1, ctrl) \ 185205128SsimonBLOCK_CIPHER_def_ecb(cname, kstruct, nid, block_size, key_len, flags, \ 186296341Sdelphij init_key, cleanup, set_asn1, get_asn1, ctrl) 187109998Smarkm 188296341Sdelphij/*- 189109998Smarkm#define BLOCK_CIPHER_defs(cname, kstruct, \ 190296341Sdelphij nid, block_size, key_len, iv_len, flags,\ 191296341Sdelphij init_key, cleanup, set_asn1, get_asn1, ctrl)\ 192109998Smarkmstatic const EVP_CIPHER cname##_cbc = {\ 193296341Sdelphij nid##_cbc, block_size, key_len, iv_len, \ 194296341Sdelphij flags | EVP_CIPH_CBC_MODE,\ 195296341Sdelphij init_key,\ 196296341Sdelphij cname##_cbc_cipher,\ 197296341Sdelphij cleanup,\ 198296341Sdelphij sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+\ 199296341Sdelphij sizeof((((EVP_CIPHER_CTX *)NULL)->c.kstruct)),\ 200296341Sdelphij set_asn1, get_asn1,\ 201296341Sdelphij ctrl, \ 202296341Sdelphij NULL \ 20368651Skris};\ 204109998Smarkmconst EVP_CIPHER *EVP_##cname##_cbc(void) { return &cname##_cbc; }\ 205109998Smarkmstatic const EVP_CIPHER cname##_cfb = {\ 206296341Sdelphij nid##_cfb64, 1, key_len, iv_len, \ 207296341Sdelphij flags | EVP_CIPH_CFB_MODE,\ 208296341Sdelphij init_key,\ 209296341Sdelphij cname##_cfb_cipher,\ 210296341Sdelphij cleanup,\ 211296341Sdelphij sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+\ 212296341Sdelphij sizeof((((EVP_CIPHER_CTX *)NULL)->c.kstruct)),\ 213296341Sdelphij set_asn1, get_asn1,\ 214296341Sdelphij ctrl,\ 215296341Sdelphij NULL \ 21668651Skris};\ 217109998Smarkmconst EVP_CIPHER *EVP_##cname##_cfb(void) { return &cname##_cfb; }\ 218109998Smarkmstatic const EVP_CIPHER cname##_ofb = {\ 219296341Sdelphij nid##_ofb64, 1, key_len, iv_len, \ 220296341Sdelphij flags | EVP_CIPH_OFB_MODE,\ 221296341Sdelphij init_key,\ 222296341Sdelphij cname##_ofb_cipher,\ 223296341Sdelphij cleanup,\ 224296341Sdelphij sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+\ 225296341Sdelphij sizeof((((EVP_CIPHER_CTX *)NULL)->c.kstruct)),\ 226296341Sdelphij set_asn1, get_asn1,\ 227296341Sdelphij ctrl,\ 228296341Sdelphij NULL \ 22968651Skris};\ 230109998Smarkmconst EVP_CIPHER *EVP_##cname##_ofb(void) { return &cname##_ofb; }\ 231109998Smarkmstatic const EVP_CIPHER cname##_ecb = {\ 232296341Sdelphij nid##_ecb, block_size, key_len, iv_len, \ 233296341Sdelphij flags | EVP_CIPH_ECB_MODE,\ 234296341Sdelphij init_key,\ 235296341Sdelphij cname##_ecb_cipher,\ 236296341Sdelphij cleanup,\ 237296341Sdelphij sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+\ 238296341Sdelphij sizeof((((EVP_CIPHER_CTX *)NULL)->c.kstruct)),\ 239296341Sdelphij set_asn1, get_asn1,\ 240296341Sdelphij ctrl,\ 241296341Sdelphij NULL \ 24268651Skris};\ 243109998Smarkmconst EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; } 244109998Smarkm*/ 24568651Skris 246109998Smarkm#define IMPLEMENT_BLOCK_CIPHER(cname, ksched, cprefix, kstruct, nid, \ 247296341Sdelphij block_size, key_len, iv_len, cbits, \ 248296341Sdelphij flags, init_key, \ 249296341Sdelphij cleanup, set_asn1, get_asn1, ctrl) \ 250296341Sdelphij BLOCK_CIPHER_all_funcs(cname, cprefix, cbits, kstruct, ksched) \ 251296341Sdelphij BLOCK_CIPHER_defs(cname, kstruct, nid, block_size, key_len, iv_len, \ 252296341Sdelphij cbits, flags, init_key, cleanup, set_asn1, \ 253296341Sdelphij get_asn1, ctrl) 25468651Skris 255296341Sdelphij#define EVP_C_DATA(kstruct, ctx) ((kstruct *)(ctx)->cipher_data) 256142425Snectar 257238405Sjkim#define IMPLEMENT_CFBR(cipher,cprefix,kstruct,ksched,keysize,cbits,iv_len) \ 258296341Sdelphij BLOCK_CIPHER_func_cfb(cipher##_##keysize,cprefix,cbits,kstruct,ksched) \ 259296341Sdelphij BLOCK_CIPHER_def_cfb(cipher##_##keysize,kstruct, \ 260296341Sdelphij NID_##cipher##_##keysize, keysize/8, iv_len, cbits, \ 261296341Sdelphij 0, cipher##_init_key, NULL, \ 262296341Sdelphij EVP_CIPHER_set_asn1_iv, \ 263296341Sdelphij EVP_CIPHER_get_asn1_iv, \ 264296341Sdelphij NULL) 265194206Ssimon 266296341Sdelphijstruct evp_pkey_ctx_st { 267296341Sdelphij /* Method associated with this operation */ 268296341Sdelphij const EVP_PKEY_METHOD *pmeth; 269296341Sdelphij /* Engine that implements this method or NULL if builtin */ 270296341Sdelphij ENGINE *engine; 271296341Sdelphij /* Key: may be NULL */ 272296341Sdelphij EVP_PKEY *pkey; 273296341Sdelphij /* Peer key for key agreement, may be NULL */ 274296341Sdelphij EVP_PKEY *peerkey; 275296341Sdelphij /* Actual operation */ 276296341Sdelphij int operation; 277296341Sdelphij /* Algorithm specific data */ 278296341Sdelphij void *data; 279296341Sdelphij /* Application specific data */ 280296341Sdelphij void *app_data; 281296341Sdelphij /* Keygen callback */ 282296341Sdelphij EVP_PKEY_gen_cb *pkey_gencb; 283296341Sdelphij /* implementation specific keygen data */ 284296341Sdelphij int *keygen_info; 285296341Sdelphij int keygen_info_count; 286296341Sdelphij} /* EVP_PKEY_CTX */ ; 287238405Sjkim 288296341Sdelphij#define EVP_PKEY_FLAG_DYNAMIC 1 289238405Sjkim 290296341Sdelphijstruct evp_pkey_method_st { 291296341Sdelphij int pkey_id; 292296341Sdelphij int flags; 293296341Sdelphij int (*init) (EVP_PKEY_CTX *ctx); 294296341Sdelphij int (*copy) (EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src); 295296341Sdelphij void (*cleanup) (EVP_PKEY_CTX *ctx); 296296341Sdelphij int (*paramgen_init) (EVP_PKEY_CTX *ctx); 297296341Sdelphij int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); 298296341Sdelphij int (*keygen_init) (EVP_PKEY_CTX *ctx); 299296341Sdelphij int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); 300296341Sdelphij int (*sign_init) (EVP_PKEY_CTX *ctx); 301296341Sdelphij int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, 302296341Sdelphij const unsigned char *tbs, size_t tbslen); 303296341Sdelphij int (*verify_init) (EVP_PKEY_CTX *ctx); 304296341Sdelphij int (*verify) (EVP_PKEY_CTX *ctx, 305296341Sdelphij const unsigned char *sig, size_t siglen, 306296341Sdelphij const unsigned char *tbs, size_t tbslen); 307296341Sdelphij int (*verify_recover_init) (EVP_PKEY_CTX *ctx); 308296341Sdelphij int (*verify_recover) (EVP_PKEY_CTX *ctx, 309296341Sdelphij unsigned char *rout, size_t *routlen, 310296341Sdelphij const unsigned char *sig, size_t siglen); 311296341Sdelphij int (*signctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); 312296341Sdelphij int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, 313296341Sdelphij EVP_MD_CTX *mctx); 314296341Sdelphij int (*verifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); 315296341Sdelphij int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen, 316296341Sdelphij EVP_MD_CTX *mctx); 317296341Sdelphij int (*encrypt_init) (EVP_PKEY_CTX *ctx); 318296341Sdelphij int (*encrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 319296341Sdelphij const unsigned char *in, size_t inlen); 320296341Sdelphij int (*decrypt_init) (EVP_PKEY_CTX *ctx); 321296341Sdelphij int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 322296341Sdelphij const unsigned char *in, size_t inlen); 323296341Sdelphij int (*derive_init) (EVP_PKEY_CTX *ctx); 324296341Sdelphij int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); 325296341Sdelphij int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2); 326296341Sdelphij int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value); 327296341Sdelphij} /* EVP_PKEY_METHOD */ ; 328238405Sjkim 329238405Sjkimvoid evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx); 330238405Sjkim 331296341Sdelphijint PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, 332296341Sdelphij int passlen, ASN1_TYPE *param, 333296341Sdelphij const EVP_CIPHER *c, const EVP_MD *md, 334296341Sdelphij int en_de); 335238405Sjkim 336194206Ssimon#ifdef OPENSSL_FIPS 337194206Ssimon 338296341Sdelphij# ifdef OPENSSL_DOING_MAKEDEPEND 339296341Sdelphij# undef SHA1_Init 340296341Sdelphij# undef SHA1_Update 341296341Sdelphij# undef SHA224_Init 342296341Sdelphij# undef SHA256_Init 343296341Sdelphij# undef SHA384_Init 344296341Sdelphij# undef SHA512_Init 345296341Sdelphij# undef DES_set_key_unchecked 346296341Sdelphij# endif 347238405Sjkim 348296341Sdelphij# define RIPEMD160_Init private_RIPEMD160_Init 349296341Sdelphij# define WHIRLPOOL_Init private_WHIRLPOOL_Init 350296341Sdelphij# define MD5_Init private_MD5_Init 351296341Sdelphij# define MD4_Init private_MD4_Init 352296341Sdelphij# define MD2_Init private_MD2_Init 353296341Sdelphij# define MDC2_Init private_MDC2_Init 354296341Sdelphij# define SHA_Init private_SHA_Init 355296341Sdelphij# define SHA1_Init private_SHA1_Init 356296341Sdelphij# define SHA224_Init private_SHA224_Init 357296341Sdelphij# define SHA256_Init private_SHA256_Init 358296341Sdelphij# define SHA384_Init private_SHA384_Init 359296341Sdelphij# define SHA512_Init private_SHA512_Init 360194206Ssimon 361296341Sdelphij# define BF_set_key private_BF_set_key 362296341Sdelphij# define CAST_set_key private_CAST_set_key 363296341Sdelphij# define idea_set_encrypt_key private_idea_set_encrypt_key 364296341Sdelphij# define SEED_set_key private_SEED_set_key 365296341Sdelphij# define RC2_set_key private_RC2_set_key 366296341Sdelphij# define RC4_set_key private_RC4_set_key 367296341Sdelphij# define DES_set_key_unchecked private_DES_set_key_unchecked 368296341Sdelphij# define Camellia_set_key private_Camellia_set_key 369238405Sjkim 370194206Ssimon#endif 371