parent
2ba9d3d00f
commit
c0a5a06a82
|
|
@ -334,12 +334,12 @@ void RandomNumberGenerator::GenerateIntoBufferedTransformation(BufferedTransform
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t KeyDerivationFunction::MinDerivedLength() const
|
size_t KeyDerivationFunction::MinDerivedKeyLength() const
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t KeyDerivationFunction::MaxDerivedLength() const
|
size_t KeyDerivationFunction::MaxDerivedKeyLength() const
|
||||||
{
|
{
|
||||||
return static_cast<size_t>(-1);
|
return static_cast<size_t>(-1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1477,11 +1477,11 @@ public:
|
||||||
|
|
||||||
/// \brief Determine minimum number of bytes
|
/// \brief Determine minimum number of bytes
|
||||||
/// \returns Minimum number of bytes which can be derived
|
/// \returns Minimum number of bytes which can be derived
|
||||||
virtual size_t MinDerivedLength() const;
|
virtual size_t MinDerivedKeyLength() const;
|
||||||
|
|
||||||
/// \brief Determine maximum number of bytes
|
/// \brief Determine maximum number of bytes
|
||||||
/// \returns Maximum number of bytes which can be derived
|
/// \returns Maximum number of bytes which can be derived
|
||||||
virtual size_t MaxDerivedLength() const;
|
virtual size_t MaxDerivedKeyLength() const;
|
||||||
|
|
||||||
/// \brief Returns a valid key length for the derivation function
|
/// \brief Returns a valid key length for the derivation function
|
||||||
/// \param keylength the size of the derived key, in bytes
|
/// \param keylength the size of the derived key, in bytes
|
||||||
|
|
|
||||||
27
pwdbased.h
27
pwdbased.h
|
|
@ -82,8 +82,8 @@ protected:
|
||||||
template <class T>
|
template <class T>
|
||||||
size_t PKCS5_PBKDF1<T>::GetValidDerivedLength(size_t keylength) const
|
size_t PKCS5_PBKDF1<T>::GetValidDerivedLength(size_t keylength) const
|
||||||
{
|
{
|
||||||
if (keylength > MaxDerivedLength())
|
if (keylength > MaxDerivedKeyLength())
|
||||||
return MaxDerivedLength();
|
return MaxDerivedKeyLength();
|
||||||
return keylength;
|
return keylength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -93,7 +93,7 @@ size_t PKCS5_PBKDF1<T>::DeriveKey(byte *derived, size_t derivedLen,
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
||||||
CRYPTOPP_ASSERT(derived && derivedLen);
|
CRYPTOPP_ASSERT(derived && derivedLen);
|
||||||
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedLength());
|
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedKeyLength());
|
||||||
|
|
||||||
byte purpose = (byte)params.GetIntValueWithDefault("Purpose", 0);
|
byte purpose = (byte)params.GetIntValueWithDefault("Purpose", 0);
|
||||||
unsigned int iterations = (unsigned int)params.GetIntValueWithDefault("Iterations", 1);
|
unsigned int iterations = (unsigned int)params.GetIntValueWithDefault("Iterations", 1);
|
||||||
|
|
@ -112,7 +112,7 @@ size_t PKCS5_PBKDF1<T>::DeriveKey(byte *derived, size_t derivedLen, byte purpose
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
||||||
CRYPTOPP_ASSERT(derived && derivedLen);
|
CRYPTOPP_ASSERT(derived && derivedLen);
|
||||||
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedLength());
|
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedKeyLength());
|
||||||
CRYPTOPP_ASSERT(iterations > 0 || timeInSeconds > 0);
|
CRYPTOPP_ASSERT(iterations > 0 || timeInSeconds > 0);
|
||||||
CRYPTOPP_UNUSED(purpose);
|
CRYPTOPP_UNUSED(purpose);
|
||||||
|
|
||||||
|
|
@ -137,7 +137,8 @@ size_t PKCS5_PBKDF1<T>::DeriveKey(byte *derived, size_t derivedLen, byte purpose
|
||||||
for (i=1; i<iterations || (timeInSeconds && (i%128!=0 || timer.ElapsedTimeAsDouble() < timeInSeconds)); i++)
|
for (i=1; i<iterations || (timeInSeconds && (i%128!=0 || timer.ElapsedTimeAsDouble() < timeInSeconds)); i++)
|
||||||
hash.CalculateDigest(buffer, buffer, buffer.size());
|
hash.CalculateDigest(buffer, buffer, buffer.size());
|
||||||
|
|
||||||
memcpy(derived, buffer, derivedLen);
|
if (derived)
|
||||||
|
memcpy(derived, buffer, derivedLen);
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -206,8 +207,8 @@ protected:
|
||||||
template <class T>
|
template <class T>
|
||||||
size_t PKCS5_PBKDF2_HMAC<T>::GetValidDerivedLength(size_t keylength) const
|
size_t PKCS5_PBKDF2_HMAC<T>::GetValidDerivedLength(size_t keylength) const
|
||||||
{
|
{
|
||||||
if (keylength > MaxDerivedLength())
|
if (keylength > MaxDerivedKeyLength())
|
||||||
return MaxDerivedLength();
|
return MaxDerivedKeyLength();
|
||||||
return keylength;
|
return keylength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -217,7 +218,7 @@ size_t PKCS5_PBKDF2_HMAC<T>::DeriveKey(byte *derived, size_t derivedLen,
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
||||||
CRYPTOPP_ASSERT(derived && derivedLen);
|
CRYPTOPP_ASSERT(derived && derivedLen);
|
||||||
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedLength());
|
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedKeyLength());
|
||||||
|
|
||||||
byte purpose = (byte)params.GetIntValueWithDefault("Purpose", 0);
|
byte purpose = (byte)params.GetIntValueWithDefault("Purpose", 0);
|
||||||
unsigned int iterations = (unsigned int)params.GetIntValueWithDefault("Iterations", 1);
|
unsigned int iterations = (unsigned int)params.GetIntValueWithDefault("Iterations", 1);
|
||||||
|
|
@ -236,7 +237,7 @@ size_t PKCS5_PBKDF2_HMAC<T>::DeriveKey(byte *derived, size_t derivedLen, byte pu
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
||||||
CRYPTOPP_ASSERT(derived && derivedLen);
|
CRYPTOPP_ASSERT(derived && derivedLen);
|
||||||
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedLength());
|
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedKeyLength());
|
||||||
CRYPTOPP_ASSERT(iterations > 0 || timeInSeconds > 0);
|
CRYPTOPP_ASSERT(iterations > 0 || timeInSeconds > 0);
|
||||||
CRYPTOPP_UNUSED(purpose);
|
CRYPTOPP_UNUSED(purpose);
|
||||||
|
|
||||||
|
|
@ -363,8 +364,8 @@ protected:
|
||||||
template <class T>
|
template <class T>
|
||||||
size_t PKCS12_PBKDF<T>::GetValidDerivedLength(size_t keylength) const
|
size_t PKCS12_PBKDF<T>::GetValidDerivedLength(size_t keylength) const
|
||||||
{
|
{
|
||||||
if (keylength > MaxDerivedLength())
|
if (keylength > MaxDerivedKeyLength())
|
||||||
return MaxDerivedLength();
|
return MaxDerivedKeyLength();
|
||||||
return keylength;
|
return keylength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -374,7 +375,7 @@ size_t PKCS12_PBKDF<T>::DeriveKey(byte *derived, size_t derivedLen,
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
||||||
CRYPTOPP_ASSERT(derived && derivedLen);
|
CRYPTOPP_ASSERT(derived && derivedLen);
|
||||||
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedLength());
|
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedKeyLength());
|
||||||
|
|
||||||
byte purpose = (byte)params.GetIntValueWithDefault("Purpose", 0);
|
byte purpose = (byte)params.GetIntValueWithDefault("Purpose", 0);
|
||||||
unsigned int iterations = (unsigned int)params.GetIntValueWithDefault("Iterations", 1);
|
unsigned int iterations = (unsigned int)params.GetIntValueWithDefault("Iterations", 1);
|
||||||
|
|
@ -394,7 +395,7 @@ size_t PKCS12_PBKDF<T>::DeriveKey(byte *derived, size_t derivedLen, byte purpose
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
CRYPTOPP_ASSERT(secret /*&& secretLen*/);
|
||||||
CRYPTOPP_ASSERT(derived && derivedLen);
|
CRYPTOPP_ASSERT(derived && derivedLen);
|
||||||
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedLength());
|
CRYPTOPP_ASSERT(derivedLen <= MaxDerivedKeyLength());
|
||||||
CRYPTOPP_ASSERT(iterations > 0 || timeInSeconds > 0);
|
CRYPTOPP_ASSERT(iterations > 0 || timeInSeconds > 0);
|
||||||
|
|
||||||
ThrowIfInvalidDerivedLength(derivedLen);
|
ThrowIfInvalidDerivedLength(derivedLen);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue