OpenSSL-如何从1.1版本开始从密码结构获取缓冲区长度

时间:2019-05-24 09:13:32

标签: openssl upgrade

我正在使用buf_len变量成员来知道出现问题并返回给调用方的所需长度。

DecryptUpdate(unsigned char* pEncryptedPart, unsigned long int ulEncryptedPartLen,
    unsigned char* pPart, unsigned long int *pulPartLen){

    unsigned long required_rest = (ctx.buf_len + ulEncryptedPartLen) % EVP_CIPHER_block_size(mCipher);
    unsigned long required_len = ctx.buf_len + ulEncryptedPartLen - required_rest;

    if (pPart == NULL_PTR || *pulPartLen < required_len)
    {
        *pulPartLen = required_len;
        return pPart == NULL_PTR  ? CK_OK : CK_BUFFER_TOO_SMALL;
    }
    ...
}

如何从密码结构中获取缓冲区长度?

1 个答案:

答案 0 :(得分:0)

我假设您的意思是EVP_CIPHER_CTX类型。由于它是内部实现的详细信息,因此无法再提取此信息。

您将必须自己对这些信息进行核算,根据传入的数据大小进行计算很容易。