[openssl-users] Non const input for EVP_EncryptUpdate and EVP_DecryptUpdate

Edward Diener eldlistmailingz at tropicsoft.com
Wed Nov 22 20:41:35 UTC 2017


On 11/22/2017 10:46 AM, Matt Caswell wrote:
> This is a bug in the docs. In the header files they are declared as const:
> 
> int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
>                        const unsigned char *in, int inl);
> 
> int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
>                        const unsigned char *in, int inl);
> 
> Please file a bug report!

I filed an issue. It is now the 333th open issue. Thanks for the 
information. I guess I should have looked myself.

> 
> https://github.com/openssl/openssl/issues
> 
> Matt
> 
> 
> On 22/11/17 14:42, Edward Diener wrote:
>> When calling EVP_EncryptUpdate with some plaintext to be encrypted the
>> parameter for the plaintext is a pointer to a non-const array of
>> unsigned char, as in the function prototype:
>>
>> int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
>>           int *outl, unsigned char *in, int inl);
>>
>> Similarly when calling EVP_DecryptUpdate with some ciphertext to be
>> decrypted the parameter for the ciphertext is a pointer to a non-const
>> array of unsigned char, as in the function prototype:
>>
>> int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
>>           int *outl, unsigned char *in, int inl);
>>
>> I have taken both these function prototypes from the OpenSSL
>> documentation at
>> https://wiki.openssl.org/index.php/Manual:EVP_EncryptInit(3).
>>
>> Does this mean that the input array in both cases actually is modified
>> in any way by the functions ? Or is this just an error in that if the
>> input remains unmodified the functions do not specify the parameter as
>> 'const unsigned char * in' instead ?
>>
>>




More information about the openssl-users mailing list