EVP_DecodeBlock() [in crypto/evp/encode.c] returns the length of the result
of the base-64 decode.  However this length is not the true length of the
result but includes any trailing fills ('=') so it's always 0 mod 3.  This
obviously can cause errors in any processing on the result, e.g. decryption.
I would suggest that adding something like:
        while (*--f == '=')
            --ret;
immediately before the "return(ret);" would solve the problem.
Chris Brook

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to