From: Arran Cudbard-Bell Date: Tue, 8 Jan 2019 02:12:25 +0000 (+0800) Subject: Use md4/md5 calc functions where possibe X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a82e586477bca92fda74b5ae36fdb1377fa1e17;p=thirdparty%2Ffreeradius-server.git Use md4/md5 calc functions where possibe --- diff --git a/src/lib/server/xlat_func.c b/src/lib/server/xlat_func.c index dc2bd44dda1..b4282913a45 100644 --- a/src/lib/server/xlat_func.c +++ b/src/lib/server/xlat_func.c @@ -1136,7 +1136,6 @@ static xlat_action_t md4_xlat(TALLOC_CTX *ctx, fr_cursor_t *out, fr_value_box_t **in) { uint8_t digest[MD5_DIGEST_LENGTH]; - fr_md4_ctx_t *md4_ctx; fr_value_box_t *vb; /* @@ -1147,15 +1146,12 @@ static xlat_action_t md4_xlat(TALLOC_CTX *ctx, fr_cursor_t *out, return XLAT_ACTION_FAIL; } - md4_ctx = fr_md4_ctx_alloc(true); if (*in) { - fr_md4_update(md4_ctx, (*in)->vb_octets, (*in)->vb_length); + fr_md4_calc(digest, (*in)->vb_octets, (*in)->vb_length); } else { - /* MD4 of empty string */ - fr_md4_update(md4_ctx, NULL, 0); + /* Digest of empty string */ + fr_md4_calc(digest, NULL, 0); } - fr_md4_final(digest, md4_ctx); - fr_md4_ctx_free(&md4_ctx); MEM(vb = fr_value_box_alloc_null(ctx)); fr_value_box_memdup(vb, vb, NULL, digest, sizeof(digest), false); @@ -1174,7 +1170,6 @@ static xlat_action_t md5_xlat(TALLOC_CTX *ctx, fr_cursor_t *out, fr_value_box_t **in) { uint8_t digest[MD5_DIGEST_LENGTH]; - FR_MD5_CTX md5_ctx; fr_value_box_t *vb; /* @@ -1185,14 +1180,12 @@ static xlat_action_t md5_xlat(TALLOC_CTX *ctx, fr_cursor_t *out, return XLAT_ACTION_FAIL; } - fr_md5_init(&md5_ctx); if (*in) { - fr_md5_update(&md5_ctx, (*in)->vb_octets, (*in)->vb_length); + fr_md5_calc(digest, (*in)->vb_octets, (*in)->vb_length); } else { - /* MD5 of empty string */ - fr_md5_update(&md5_ctx, NULL, 0); + /* Digest of empty string */ + fr_md5_calc(digest, NULL, 0); } - fr_md5_final(digest, &md5_ctx); MEM(vb = fr_value_box_alloc_null(ctx)); fr_value_box_memdup(vb, vb, NULL, digest, sizeof(digest), false); diff --git a/src/modules/proto_bfd/proto_bfd.c b/src/modules/proto_bfd/proto_bfd.c index 6344d8bda51..a8d798a04ab 100644 --- a/src/modules/proto_bfd/proto_bfd.c +++ b/src/modules/proto_bfd/proto_bfd.c @@ -636,7 +636,6 @@ static int bfd_verify_sequence(bfd_state_t *session, uint32_t sequence_no, static void bfd_calc_md5(bfd_state_t *session, bfd_packet_t *bfd) { - FR_MD5_CTX ctx; bfd_auth_md5_t *md5 = &bfd->auth.md5; rad_assert(session->secret_len <= sizeof(md5->digest)); @@ -645,9 +644,7 @@ static void bfd_calc_md5(bfd_state_t *session, bfd_packet_t *bfd) memset(md5->digest, 0, sizeof(md5->digest)); memcpy(md5->digest, session->secret, session->secret_len); - fr_md5_init(&ctx); - fr_md5_update(&ctx, (const uint8_t *) bfd, bfd->length); - fr_md5_final(md5->digest, &ctx); + fr_md5_calc(md5->digest,(const uint8_t *) bfd, bfd->length); } static void bfd_auth_md5(bfd_state_t *session, bfd_packet_t *bfd) diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c b/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c index 8726fd6e147..7690b2d6cdb 100644 --- a/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c +++ b/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c @@ -227,10 +227,9 @@ static int mod_instantiate(void *instance, CONF_SECTION *cs) } rad_assert(PAC_A_ID_LENGTH == MD5_DIGEST_LENGTH); - FR_MD5_CTX ctx; - fr_md5_init(&ctx); - fr_md5_update(&ctx, inst->authority_identity, talloc_array_length(inst->authority_identity) - 1); - fr_md5_final(inst->a_id, &ctx); + + fr_md5_calc(inst->a_id, (uint8_t const *)inst->authority_identity, + talloc_array_length(inst->authority_identity) - 1); return 0; } diff --git a/src/modules/rlm_pap/rlm_pap.c b/src/modules/rlm_pap/rlm_pap.c index 67c0edaef50..8fcf3e128de 100644 --- a/src/modules/rlm_pap/rlm_pap.c +++ b/src/modules/rlm_pap/rlm_pap.c @@ -651,7 +651,6 @@ static rlm_rcode_t CC_HINT(nonnull) pap_auth_crypt(UNUSED rlm_pap_t const *inst, static rlm_rcode_t CC_HINT(nonnull) pap_auth_md5(rlm_pap_t const *inst, REQUEST *request, VALUE_PAIR *vp) { - FR_MD5_CTX md5_context; uint8_t digest[128]; RDEBUG("Comparing with \"known-good\" MD5-Password"); @@ -664,9 +663,7 @@ static rlm_rcode_t CC_HINT(nonnull) pap_auth_md5(rlm_pap_t const *inst, REQUEST return RLM_MODULE_INVALID; } - fr_md5_init(&md5_context); - fr_md5_update(&md5_context, request->password->vp_octets, request->password->vp_length); - fr_md5_final(digest, &md5_context); + fr_md5_calc(digest, request->password->vp_octets, request->password->vp_length); if (fr_digest_cmp(digest, vp->vp_octets, vp->vp_length) != 0) { REDEBUG("MD5 digest does not match \"known good\" digest"); @@ -1324,7 +1321,6 @@ static rlm_rcode_t CC_HINT(nonnull) pap_auth_lm(rlm_pap_t const *inst, REQUEST * static rlm_rcode_t CC_HINT(nonnull) pap_auth_ns_mta_md5(UNUSED rlm_pap_t const *inst, REQUEST *request, VALUE_PAIR *vp) { - FR_MD5_CTX md5_context; uint8_t digest[128]; uint8_t buff[FR_MAX_STRING_LEN]; uint8_t buff2[FR_MAX_STRING_LEN + 50]; @@ -1369,9 +1365,7 @@ static rlm_rcode_t CC_HINT(nonnull) pap_auth_ns_mta_md5(UNUSED rlm_pap_t const * memcpy(p, &vp->vp_octets[32], 32); p += 32; - fr_md5_init(&md5_context); - fr_md5_update(&md5_context, (uint8_t *) buff2, p - buff2); - fr_md5_final(buff, &md5_context); + fr_md5_calc(buff, (uint8_t *) buff2, p - buff2); } if (fr_digest_cmp(digest, buff, 16) != 0) {