EVP_EncryptInit_ex() and EVP_DecryptInit_ex() had been defined in evp.h but
authorGeoff Thorpe <geoff@openssl.org>
Mon, 8 Oct 2001 17:24:10 +0000 (17:24 +0000)
committerGeoff Thorpe <geoff@openssl.org>
Mon, 8 Oct 2001 17:24:10 +0000 (17:24 +0000)
not implemented. (Bug reported by Martin Szotkowski)

This also changes the non-"_ex" versions to defer directly to
EVP_CipherInit_ex() rather than EVP_CipherInit() to avoid an unecessary
level of indirection.

crypto/evp/evp_enc.c

index 3fbe5c6527736d6fc046bd4d1295c752385e112b..0f5a128d6856503c64be166c0db320b7ad6759a4 100644 (file)
@@ -197,13 +197,25 @@ int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
 int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
             const unsigned char *key, const unsigned char *iv)
        {
-       return EVP_CipherInit(ctx, cipher, key, iv, 1);
+       return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, 1);
+       }
+
+int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
+               const unsigned char *key, const unsigned char *iv)
+       {
+       return EVP_CipherInit_ex(ctx, cipher, impl, key, iv, 1);
        }
 
 int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
             const unsigned char *key, const unsigned char *iv)
        {
-       return EVP_CipherInit(ctx, cipher, key, iv, 0);
+       return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, 0);
+       }
+
+int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl,
+            const unsigned char *key, const unsigned char *iv)
+       {
+       return EVP_CipherInit_ex(ctx, cipher, impl, key, iv, 0);
        }
 
 int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,