Cleared "auto_ptr is deprecated" warning. Switch to unique_ptr when C++11 is in effect

pull/35/head
Jeffrey Walton 2015-07-27 01:07:55 -04:00
parent 9de95b4400
commit bd3a67034d
1 changed files with 17 additions and 2 deletions

View File

@ -48,8 +48,13 @@ void OAEP_Base::Pad(RandomNumberGenerator &rng, const byte *input, size_t inputL
maskedDB[dbLen-inputLength-1] = 0x01; maskedDB[dbLen-inputLength-1] = 0x01;
memcpy(maskedDB+dbLen-inputLength, input, inputLength); memcpy(maskedDB+dbLen-inputLength, input, inputLength);
rng.GenerateBlock(maskedSeed, seedLen); #if defined(CRYPTOPP_CXX11)
std::unique_ptr<MaskGeneratingFunction> pMGF(NewMGF());
#else
std::auto_ptr<MaskGeneratingFunction> pMGF(NewMGF()); std::auto_ptr<MaskGeneratingFunction> pMGF(NewMGF());
#endif
rng.GenerateBlock(maskedSeed, seedLen);
pMGF->GenerateAndMask(*pHash, maskedDB, dbLen, maskedSeed, seedLen); pMGF->GenerateAndMask(*pHash, maskedDB, dbLen, maskedSeed, seedLen);
pMGF->GenerateAndMask(*pHash, maskedSeed, seedLen, maskedDB, dbLen); pMGF->GenerateAndMask(*pHash, maskedSeed, seedLen, maskedDB, dbLen);
} }
@ -58,6 +63,12 @@ DecodingResult OAEP_Base::Unpad(const byte *oaepBlock, size_t oaepBlockLen, byte
{ {
bool invalid = false; bool invalid = false;
#if defined(CRYPTOPP_CXX11)
std::unique_ptr<HashTransformation> pHash(NewHash());
#else
std::auto_ptr<HashTransformation> pHash(NewHash());
#endif
// convert from bit length to byte length // convert from bit length to byte length
if (oaepBlockLen % 8 != 0) if (oaepBlockLen % 8 != 0)
{ {
@ -66,7 +77,6 @@ DecodingResult OAEP_Base::Unpad(const byte *oaepBlock, size_t oaepBlockLen, byte
} }
oaepBlockLen /= 8; oaepBlockLen /= 8;
std::auto_ptr<HashTransformation> pHash(NewHash());
const size_t hLen = pHash->DigestSize(); const size_t hLen = pHash->DigestSize();
const size_t seedLen = hLen, dbLen = oaepBlockLen-seedLen; const size_t seedLen = hLen, dbLen = oaepBlockLen-seedLen;
@ -76,7 +86,12 @@ DecodingResult OAEP_Base::Unpad(const byte *oaepBlock, size_t oaepBlockLen, byte
byte *const maskedSeed = t; byte *const maskedSeed = t;
byte *const maskedDB = t+seedLen; byte *const maskedDB = t+seedLen;
#if defined(CRYPTOPP_CXX11)
std::unique_ptr<MaskGeneratingFunction> pMGF(NewMGF());
#else
std::auto_ptr<MaskGeneratingFunction> pMGF(NewMGF()); std::auto_ptr<MaskGeneratingFunction> pMGF(NewMGF());
#endif
pMGF->GenerateAndMask(*pHash, maskedSeed, seedLen, maskedDB, dbLen); pMGF->GenerateAndMask(*pHash, maskedSeed, seedLen, maskedDB, dbLen);
pMGF->GenerateAndMask(*pHash, maskedDB, dbLen, maskedSeed, seedLen); pMGF->GenerateAndMask(*pHash, maskedDB, dbLen, maskedSeed, seedLen);