我正在使用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;
}
...
}
如何从密码结构中获取缓冲区长度?
答案 0 :(得分:0)
我假设您的意思是EVP_CIPHER_CTX类型。由于它是内部实现的详细信息,因此无法再提取此信息。
您将必须自己对这些信息进行核算,根据传入的数据大小进行计算很容易。