Use the right length for the sha256 checksums.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17105 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -561,12 +561,12 @@ sha256_create_signature(const struct signature_alg *sig_alg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sig->data = malloc(SHA_DIGEST_LENGTH);
|
sig->data = malloc(SHA256_DIGEST_LENGTH);
|
||||||
if (sig->data == NULL) {
|
if (sig->data == NULL) {
|
||||||
sig->length = 0;
|
sig->length = 0;
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
}
|
}
|
||||||
sig->length = SHA_DIGEST_LENGTH;
|
sig->length = SHA256_DIGEST_LENGTH;
|
||||||
|
|
||||||
SHA256_Init(&m);
|
SHA256_Init(&m);
|
||||||
SHA256_Update(&m, data->data, data->length);
|
SHA256_Update(&m, data->data, data->length);
|
||||||
@@ -582,17 +582,17 @@ sha256_verify_signature(const struct signature_alg *sig_alg,
|
|||||||
const heim_octet_string *data,
|
const heim_octet_string *data,
|
||||||
const heim_octet_string *sig)
|
const heim_octet_string *sig)
|
||||||
{
|
{
|
||||||
unsigned char digest[SHA_DIGEST_LENGTH];
|
unsigned char digest[SHA256_DIGEST_LENGTH];
|
||||||
SHA256_CTX m;
|
SHA256_CTX m;
|
||||||
|
|
||||||
if (sig->length != SHA_DIGEST_LENGTH)
|
if (sig->length != SHA256_DIGEST_LENGTH)
|
||||||
return HX509_CRYPTO_SIG_INVALID_FORMAT;
|
return HX509_CRYPTO_SIG_INVALID_FORMAT;
|
||||||
|
|
||||||
SHA256_Init(&m);
|
SHA256_Init(&m);
|
||||||
SHA256_Update(&m, data->data, data->length);
|
SHA256_Update(&m, data->data, data->length);
|
||||||
SHA256_Final (digest, &m);
|
SHA256_Final (digest, &m);
|
||||||
|
|
||||||
if (memcmp(digest, sig->data, SHA_DIGEST_LENGTH) != 0)
|
if (memcmp(digest, sig->data, SHA256_DIGEST_LENGTH) != 0)
|
||||||
return HX509_CRYPTO_BAD_SIGNATURE;
|
return HX509_CRYPTO_BAD_SIGNATURE;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user