X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fevp%2Fevp_test.c;h=ae14356dfeabefffb8f7463177ccd927650dd3cf;hb=52b66a622dfe0aae5fd6305c701b0f87e6d3f9d1;hp=fa3c9221bb16211be347c88a362566fce066456a;hpb=997a54c9811e4b91fb064a11eb21dbc501e7ed85;p=oweals%2Fopenssl.git diff --git a/crypto/evp/evp_test.c b/crypto/evp/evp_test.c index fa3c9221bb..ae14356dfe 100644 --- a/crypto/evp/evp_test.c +++ b/crypto/evp/evp_test.c @@ -51,6 +51,7 @@ #include #include #include +#include static void hexdump(FILE *f,const char *title,const unsigned char *s,int l) { @@ -142,7 +143,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn, exit(5); } EVP_CIPHER_CTX_init(&ctx); - if(!EVP_EncryptInit(&ctx,c,key,iv)) + if(!EVP_EncryptInit_ex(&ctx,c,NULL,key,iv)) { fprintf(stderr,"EncryptInit failed\n"); exit(10); @@ -154,7 +155,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn, fprintf(stderr,"Encrypt failed\n"); exit(6); } - if(!EVP_EncryptFinal(&ctx,out+outl,&outl2)) + if(!EVP_EncryptFinal_ex(&ctx,out+outl,&outl2)) { fprintf(stderr,"EncryptFinal failed\n"); exit(7); @@ -175,7 +176,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn, exit(9); } - if(!EVP_DecryptInit(&ctx,c,key,iv)) + if(!EVP_DecryptInit_ex(&ctx,c,NULL,key,iv)) { fprintf(stderr,"DecryptInit failed\n"); exit(11); @@ -187,7 +188,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn, fprintf(stderr,"Decrypt failed\n"); exit(6); } - if(!EVP_DecryptFinal(&ctx,out+outl,&outl2)) + if(!EVP_DecryptFinal_ex(&ctx,out+outl,&outl2)) { fprintf(stderr,"DecryptFinal failed\n"); exit(7); @@ -217,7 +218,6 @@ static int test_cipher(const char *cipher,const unsigned char *key,int kn, const unsigned char *ciphertext,int cn) { const EVP_CIPHER *c; - ENGINE *e; c=EVP_get_cipherbyname(cipher); if(!c) @@ -225,22 +225,12 @@ static int test_cipher(const char *cipher,const unsigned char *key,int kn, test1(c,key,kn,iv,in,plaintext,pn,ciphertext,cn); - for(e=ENGINE_get_first() ; e ; e=ENGINE_get_next(e)) - { - c=ENGINE_get_cipher_by_name(e,cipher); - if(!c) - continue; - printf("Testing engine %s\n",ENGINE_get_name(e)); - - test1(c,key,kn,iv,in,plaintext,pn,ciphertext,cn); - } - return 1; } static int test_digest(const char *digest, const unsigned char *plaintext,int pn, - const unsigned char *ciphertext, int cn) + const unsigned char *ciphertext, unsigned int cn) { const EVP_MD *d; EVP_MD_CTX ctx; @@ -256,7 +246,7 @@ static int test_digest(const char *digest, hexdump(stdout,"Digest",ciphertext,cn); EVP_MD_CTX_init(&ctx); - if(!EVP_DigestInit(&ctx,d)) + if(!EVP_DigestInit_ex(&ctx,d, NULL)) { fprintf(stderr,"DigestInit failed\n"); exit(100); @@ -266,7 +256,7 @@ static int test_digest(const char *digest, fprintf(stderr,"DigestUpdate failed\n"); exit(101); } - if(!EVP_DigestFinal(&ctx,md,&mdn)) + if(!EVP_DigestFinal_ex(&ctx,md,&mdn)) { fprintf(stderr,"DigestFinal failed\n"); exit(101); @@ -315,9 +305,20 @@ int main(int argc,char **argv) exit(2); } + /* Load up the software EVP_CIPHER and EVP_MD definitions */ OpenSSL_add_all_ciphers(); OpenSSL_add_all_digests(); + /* Load all compiled-in ENGINEs */ ENGINE_load_builtin_engines(); + OPENSSL_config(); + /* Register all available ENGINE implementations of ciphers and digests. + * This could perhaps be changed to "ENGINE_register_all_complete()"? */ + ENGINE_register_all_ciphers(); + ENGINE_register_all_digests(); + /* If we add command-line options, this statement should be switchable. + * It'll prevent ENGINEs being ENGINE_init()ialised for cipher/digest use if + * they weren't already initialised. */ + /* ENGINE_set_cipher_flags(ENGINE_CIPHER_FLAG_NOINIT); */ for( ; ; ) {