OpenSSL - Как получить длину буфера из структур шифров начиная с версии 1.1 - PullRequest
0 голосов
/ 24 мая 2019

Я использую 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 голосов
/ 24 мая 2019

Я предполагаю ваше среднее значение для типа EVP_CIPHER_CTX. Больше нет возможности извлечь эту информацию, так как это внутренняя деталь реализации.

Вам придется самостоятельно вести учет этой информации, ее достаточно легко рассчитать на основе объема передаваемых данных.

...