fix for compiling with Clang from Marshall Clow
parent
1088b555df
commit
a3a3ff3c86
|
|
@ -1,5 +1,5 @@
|
||||||
Crypto++: a C++ Class Library of Cryptographic Schemes
|
Crypto++: a C++ Class Library of Cryptographic Schemes
|
||||||
Version 5.6.1 (8/9/2010, SVN r520)
|
Version 5.6.2 (in development)
|
||||||
|
|
||||||
Crypto++ Library is a free C++ class library of cryptographic schemes.
|
Crypto++ Library is a free C++ class library of cryptographic schemes.
|
||||||
Currently the library contains the following algorithms:
|
Currently the library contains the following algorithms:
|
||||||
|
|
@ -41,7 +41,7 @@ Currently the library contains the following algorithms:
|
||||||
elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV
|
elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV
|
||||||
|
|
||||||
insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL
|
insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL
|
||||||
algorithms retained for backwards 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2,
|
algorithms retained for backwards 3.0, WAKE-OFB, DESX (DES-XEX3), RC2,
|
||||||
compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square
|
compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square
|
||||||
value
|
value
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ template <class T> const T& AbstractEuclideanDomain<T>::Gcd(const Element &a, co
|
||||||
Element g[3]={b, a};
|
Element g[3]={b, a};
|
||||||
unsigned int i0=0, i1=1, i2=2;
|
unsigned int i0=0, i1=1, i2=2;
|
||||||
|
|
||||||
while (!Equal(g[i1], this->Identity()))
|
while (!this->Equal(g[i1], this->Identity()))
|
||||||
{
|
{
|
||||||
g[i2] = Mod(g[i0], g[i1]);
|
g[i2] = Mod(g[i0], g[i1]);
|
||||||
unsigned int t = i0; i0 = i1; i1 = i2; i2 = t;
|
unsigned int t = i0; i0 = i1; i1 = i2; i2 = t;
|
||||||
|
|
|
||||||
|
|
@ -435,7 +435,7 @@ template <class EC> void DL_GroupParameters_EC<EC>::Initialize(const OID &oid)
|
||||||
StringSource ssG(param.g, true, new HexDecoder);
|
StringSource ssG(param.g, true, new HexDecoder);
|
||||||
Element G;
|
Element G;
|
||||||
bool result = GetCurve().DecodePoint(G, ssG, (size_t)ssG.MaxRetrievable());
|
bool result = GetCurve().DecodePoint(G, ssG, (size_t)ssG.MaxRetrievable());
|
||||||
SetSubgroupGenerator(G);
|
this->SetSubgroupGenerator(G);
|
||||||
assert(result);
|
assert(result);
|
||||||
|
|
||||||
StringSource ssN(param.n, true, new HexDecoder);
|
StringSource ssN(param.n, true, new HexDecoder);
|
||||||
|
|
@ -591,7 +591,7 @@ bool DL_GroupParameters_EC<EC>::ValidateElement(unsigned int level, const Elemen
|
||||||
if (level >= 2 && pass)
|
if (level >= 2 && pass)
|
||||||
{
|
{
|
||||||
const Integer &q = GetSubgroupOrder();
|
const Integer &q = GetSubgroupOrder();
|
||||||
Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : ExponentiateElement(g, q);
|
Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : this->ExponentiateElement(g, q);
|
||||||
pass = pass && IsIdentity(gq);
|
pass = pass && IsIdentity(gq);
|
||||||
}
|
}
|
||||||
return pass;
|
return pass;
|
||||||
|
|
@ -629,7 +629,7 @@ void DL_PublicKey_EC<EC>::BERDecodePublicKey(BufferedTransformation &bt, bool pa
|
||||||
typename EC::Point P;
|
typename EC::Point P;
|
||||||
if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size))
|
if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size))
|
||||||
BERDecodeError();
|
BERDecodeError();
|
||||||
SetPublicElement(P);
|
this->SetPublicElement(P);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class EC>
|
template <class EC>
|
||||||
|
|
|
||||||
10
eccrypto.h
10
eccrypto.h
|
|
@ -43,7 +43,7 @@ public:
|
||||||
void Initialize(const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k = Integer::Zero())
|
void Initialize(const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k = Integer::Zero())
|
||||||
{
|
{
|
||||||
this->m_groupPrecomputation.SetCurve(ec);
|
this->m_groupPrecomputation.SetCurve(ec);
|
||||||
SetSubgroupGenerator(G);
|
this->SetSubgroupGenerator(G);
|
||||||
m_n = n;
|
m_n = n;
|
||||||
m_k = k;
|
m_k = k;
|
||||||
}
|
}
|
||||||
|
|
@ -145,9 +145,9 @@ public:
|
||||||
typedef typename EC::Point Element;
|
typedef typename EC::Point Element;
|
||||||
|
|
||||||
void Initialize(const DL_GroupParameters_EC<EC> ¶ms, const Element &Q)
|
void Initialize(const DL_GroupParameters_EC<EC> ¶ms, const Element &Q)
|
||||||
{this->AccessGroupParameters() = params; SetPublicElement(Q);}
|
{this->AccessGroupParameters() = params; this->SetPublicElement(Q);}
|
||||||
void Initialize(const EC &ec, const Element &G, const Integer &n, const Element &Q)
|
void Initialize(const EC &ec, const Element &G, const Integer &n, const Element &Q)
|
||||||
{this->AccessGroupParameters().Initialize(ec, G, n); SetPublicElement(Q);}
|
{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPublicElement(Q);}
|
||||||
|
|
||||||
// X509PublicKey
|
// X509PublicKey
|
||||||
void BERDecodePublicKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
|
void BERDecodePublicKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
|
||||||
|
|
@ -166,9 +166,9 @@ public:
|
||||||
void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x)
|
void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x)
|
||||||
{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);}
|
{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);}
|
||||||
void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC<EC> ¶ms)
|
void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC<EC> ¶ms)
|
||||||
{GenerateRandom(rng, params);}
|
{this->GenerateRandom(rng, params);}
|
||||||
void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n)
|
void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n)
|
||||||
{GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
|
{this->GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
|
||||||
|
|
||||||
// PKCS8PrivateKey
|
// PKCS8PrivateKey
|
||||||
void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
|
void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
|
||||||
|
|
|
||||||
|
|
@ -422,7 +422,7 @@ void PanamaHash<B>::TruncatedFinal(byte *hash, size_t size)
|
||||||
{
|
{
|
||||||
this->ThrowIfInvalidTruncatedSize(size);
|
this->ThrowIfInvalidTruncatedSize(size);
|
||||||
|
|
||||||
PadLastBlock(this->BLOCKSIZE, 0x01);
|
this->PadLastBlock(this->BLOCKSIZE, 0x01);
|
||||||
|
|
||||||
HashEndianCorrectedBlock(this->m_data);
|
HashEndianCorrectedBlock(this->m_data);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ public:
|
||||||
|
|
||||||
pointer allocate(size_type n, const void * = NULL)
|
pointer allocate(size_type n, const void * = NULL)
|
||||||
{
|
{
|
||||||
CheckSize(n);
|
this->CheckSize(n);
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue