goto cleanup;
/* Compare the decrypted hash to the computed one. */
- *valid = (memcmp(plaintext + blocksize, computed.data, hashsize) == 0);
+ *valid = (k5_bcmp(plaintext + blocksize, computed.data, hashsize) == 0);
cleanup:
zapfree(plaintext, input->length);
ret = krb5int_cmac_checksum(enc, ki, data, num_data, &cksum);
if (ret != 0)
goto cleanup;
- if (!data_eq(cksum, trailer->data))
+ if (k5_bcmp(cksum.data, trailer->data.data, enc->block_size) != 0)
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
cleanup:
goto cleanup;
/* Compare only the possibly truncated length. */
- if (memcmp(cksum, trailer->data.data, hmacsize) != 0) {
+ if (k5_bcmp(cksum, trailer->data.data, hmacsize) != 0) {
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
goto cleanup;
}
* the saved checksum.
*/
ret = hash->hash(data, num_data, &checksum);
- if (memcmp(checksum.data, saved_checksum, checksum.length) != 0) {
+ if (k5_bcmp(checksum.data, saved_checksum, checksum.length) != 0) {
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
goto cleanup;
}
if (ret != 0)
goto cleanup;
- if (memcmp(checksum.data, comp_checksum.data, hash->hashsize) != 0) {
+ if (k5_bcmp(checksum.data, comp_checksum.data, hash->hashsize) != 0) {
if (usage == 9) {
/*
* RFC 4757 specifies usage 8 for TGS-REP encrypted parts
ret = ctp->checksum(ctp, key, usage, data, num_data, &computed);
if (ret == 0) {
- *valid = (memcmp(computed.data, checksum->data.data,
- ctp->output_size) == 0);
+ *valid = (k5_bcmp(computed.data, checksum->data.data,
+ ctp->output_size) == 0);
}
zapfree(computed.data, ctp->compute_size);
cksum.length = 16;
cksum.contents = md5cksum.contents + 16 - cksum.length;
- code = memcmp(cksum.contents, ptr+14, cksum.length);
+ code = k5_bcmp(cksum.contents, ptr + 14, cksum.length);
break;
case SGN_ALG_MD2_5:
return(GSS_S_FAILURE);
}
- code = memcmp(md5cksum.contents, ptr+14, 8);
+ code = k5_bcmp(md5cksum.contents, ptr + 14, 8);
/* Falls through to defective-token?? */
default:
return(GSS_S_FAILURE);
}
- code = memcmp(md5cksum.contents, ptr+14, cksum_len);
+ code = k5_bcmp(md5cksum.contents, ptr + 14, cksum_len);
break;
}
cksum.length = cksum_len;
cksum.contents = md5cksum.contents + 16 - cksum.length;
- code = memcmp(cksum.contents, ptr + 14, cksum.length);
+ code = k5_bcmp(cksum.contents, ptr + 14, cksum.length);
break;
case SGN_ALG_HMAC_SHA1_DES3_KD:
case SGN_ALG_HMAC_MD5:
- code = memcmp(md5cksum.contents, ptr + 14, cksum_len);
+ code = k5_bcmp(md5cksum.contents, ptr + 14, cksum_len);
break;
default:
code = 0;
}
if ((cksum.length != key_pack->asChecksum.length) ||
- memcmp(cksum.contents, key_pack->asChecksum.contents,
- cksum.length)) {
+ k5_bcmp(cksum.contents, key_pack->asChecksum.contents,
+ cksum.length) != 0) {
TRACE_PKINIT_CLIENT_REP_CHECKSUM_FAIL(context, &cksum,
&key_pack->asChecksum);
pkiDebug("failed to match the checksums\n");
goto cleanup;
}
if (cksum.length != auth_pack->pkAuthenticator.paChecksum.length ||
- memcmp(cksum.contents,
- auth_pack->pkAuthenticator.paChecksum.contents,
- cksum.length)) {
+ k5_bcmp(cksum.contents,
+ auth_pack->pkAuthenticator.paChecksum.contents,
+ cksum.length) != 0) {
pkiDebug("failed to match the checksum\n");
#ifdef DEBUG_CKSUM
pkiDebug("calculating checksum on buf size (%d)\n",