6#ifndef CRYPTOPP_IMPORTS
8NAMESPACE_BEGIN(CryptoPP)
11#ifndef CRYPTOPP_IS_DLL
20 const byte* recoverableMessage,
size_t recoverableMessageLength,
22 byte *representative,
size_t representativeBitLength)
const
24 CRYPTOPP_UNUSED(recoverableMessage), CRYPTOPP_UNUSED(recoverableMessageLength), CRYPTOPP_UNUSED(representativeBitLength);
25 CRYPTOPP_ASSERT(representativeBitLength >= MinRepresentativeBitLength(hashIdentifier.second, hash.
DigestSize()));
27 if (representativeBitLength % 8 != 7)
31 size_t representativeByteLength =
BitsToBytes(representativeBitLength);
33 representative[0] = messageEmpty ? 0x4b : 0x6b;
34 memset(representative+1, 0xbb, representativeByteLength-digestSize-4);
35 byte *afterP2 = representative+representativeByteLength-digestSize-3;
37 hash.
Final(afterP2+1);
38 representative[representativeByteLength-2] = *hashIdentifier.first;
39 representative[representativeByteLength-1] = 0xcc;
Exception throw when the private or public key has a length that can't be used.
Interface for random number generators.
Classes and functions for various padding schemes used in public key algorithms.
size_t BitsToBytes(size_t bitCount)
Returns the number of 8-bit bytes or octets required for the specified number of bits.