mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-06-21 21:38:20 +02:00
check more precise result of EVP_DigestVerify
This commit is contained in:
parent
5974d2b5ac
commit
bb2b34ff4f
3 changed files with 6 additions and 8 deletions
|
@ -53,7 +53,7 @@ namespace crypto
|
||||||
// verify
|
// verify
|
||||||
EVP_MD_CTX * ctx = EVP_MD_CTX_create ();
|
EVP_MD_CTX * ctx = EVP_MD_CTX_create ();
|
||||||
EVP_DigestVerifyInit (ctx, NULL, EVP_sha1(), NULL, m_PublicKey);
|
EVP_DigestVerifyInit (ctx, NULL, EVP_sha1(), NULL, m_PublicKey);
|
||||||
auto ret = EVP_DigestVerify (ctx, sign, l, buf, len);
|
auto ret = EVP_DigestVerify (ctx, sign, l, buf, len) == 1;
|
||||||
EVP_MD_CTX_destroy (ctx);
|
EVP_MD_CTX_destroy (ctx);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -132,7 +132,7 @@ namespace crypto
|
||||||
DSA_SIG * sig = DSA_SIG_new();
|
DSA_SIG * sig = DSA_SIG_new();
|
||||||
DSA_SIG_set0 (sig, BN_bin2bn (signature, DSA_SIGNATURE_LENGTH/2, NULL), BN_bin2bn (signature + DSA_SIGNATURE_LENGTH/2, DSA_SIGNATURE_LENGTH/2, NULL));
|
DSA_SIG_set0 (sig, BN_bin2bn (signature, DSA_SIGNATURE_LENGTH/2, NULL), BN_bin2bn (signature + DSA_SIGNATURE_LENGTH/2, DSA_SIGNATURE_LENGTH/2, NULL));
|
||||||
// DSA verification
|
// DSA verification
|
||||||
int ret = DSA_do_verify (digest, 20, sig, m_PublicKey);
|
int ret = DSA_do_verify (digest, 20, sig, m_PublicKey) == 1;
|
||||||
DSA_SIG_free(sig);
|
DSA_SIG_free(sig);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -229,7 +229,7 @@ namespace crypto
|
||||||
// verify
|
// verify
|
||||||
EVP_MD_CTX * ctx = EVP_MD_CTX_create ();
|
EVP_MD_CTX * ctx = EVP_MD_CTX_create ();
|
||||||
EVP_DigestVerifyInit (ctx, NULL, m_Hash, NULL, m_PublicKey);
|
EVP_DigestVerifyInit (ctx, NULL, m_Hash, NULL, m_PublicKey);
|
||||||
auto ret = EVP_DigestVerify (ctx, sign.data (), l, buf, len);
|
auto ret = EVP_DigestVerify (ctx, sign.data (), l, buf, len) == 1;
|
||||||
EVP_MD_CTX_destroy (ctx);
|
EVP_MD_CTX_destroy (ctx);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ namespace crypto
|
||||||
{
|
{
|
||||||
EVP_MD_CTX * ctx = EVP_MD_CTX_create ();
|
EVP_MD_CTX * ctx = EVP_MD_CTX_create ();
|
||||||
EVP_DigestVerifyInit (ctx, NULL, NULL, NULL, m_Pkey);
|
EVP_DigestVerifyInit (ctx, NULL, NULL, NULL, m_Pkey);
|
||||||
auto ret = EVP_DigestVerify (ctx, signature, 64, buf, len);
|
auto ret = EVP_DigestVerify (ctx, signature, 64, buf, len) == 1;
|
||||||
EVP_MD_CTX_destroy (ctx);
|
EVP_MD_CTX_destroy (ctx);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -509,7 +509,7 @@ namespace crypto
|
||||||
OSSL_PARAM_END
|
OSSL_PARAM_END
|
||||||
};
|
};
|
||||||
EVP_PKEY_verify_message_init (vctx, sig, params);
|
EVP_PKEY_verify_message_init (vctx, sig, params);
|
||||||
ret = EVP_PKEY_verify (vctx, signature, GetSignatureLen (), buf, len);
|
ret = EVP_PKEY_verify (vctx, signature, GetSignatureLen (), buf, len) == 1;
|
||||||
EVP_SIGNATURE_free (sig);
|
EVP_SIGNATURE_free (sig);
|
||||||
}
|
}
|
||||||
EVP_PKEY_CTX_free (vctx);
|
EVP_PKEY_CTX_free (vctx);
|
||||||
|
|
|
@ -263,7 +263,7 @@ namespace crypto
|
||||||
auto s = BN_bin2bn (signature + GetSignatureLen ()/2, GetSignatureLen ()/2, NULL);
|
auto s = BN_bin2bn (signature + GetSignatureLen ()/2, GetSignatureLen ()/2, NULL);
|
||||||
ECDSA_SIG_set0(sig, r, s);
|
ECDSA_SIG_set0(sig, r, s);
|
||||||
// ECDSA verification
|
// ECDSA verification
|
||||||
int ret = ECDSA_do_verify (digest, Hash::hashLen, sig, m_PublicKey);
|
int ret = ECDSA_do_verify (digest, Hash::hashLen, sig, m_PublicKey) == 1;
|
||||||
ECDSA_SIG_free(sig);
|
ECDSA_SIG_free(sig);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,9 +58,7 @@ int main ()
|
||||||
uint8_t s[64];
|
uint8_t s[64];
|
||||||
i2p::crypto::EDDSA25519Signer signer (key);
|
i2p::crypto::EDDSA25519Signer signer (key);
|
||||||
signer.Sign (msg, 1023, s);
|
signer.Sign (msg, 1023, s);
|
||||||
#if OPENSSL_EDDSA
|
|
||||||
assert(memcmp (s, sig, 64) == 0);
|
assert(memcmp (s, sig, 64) == 0);
|
||||||
#endif
|
|
||||||
|
|
||||||
i2p::crypto::EDDSA25519Verifier verifier;
|
i2p::crypto::EDDSA25519Verifier verifier;
|
||||||
verifier.SetPublicKey (pub);
|
verifier.SetPublicKey (pub);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue