From cce3ccc3dccadd16f5eaa5c1774391d8ff22f17e Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sat, 8 Mar 1997 07:35:11 +0000 Subject: [PATCH] (krb5_verify_checksum): New function git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1299 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/checksum.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/krb5/checksum.c b/lib/krb5/checksum.c index 45968ffad..c3ae5b1b8 100644 --- a/lib/krb5/checksum.c +++ b/lib/krb5/checksum.c @@ -25,3 +25,26 @@ krb5_create_checksum (krb5_context context, md4_finito (&m, result->checksum.data); return 0; } + +krb5_error_code +krb5_verify_checksum (krb5_context context, + void *ptr, + size_t len, + Checksum *cksum) +{ + struct md4 m; + u_char csum[16]; + + if (cksum->cksumtype != CKSUMTYPE_RSA_MD4) + return KRB_AP_ERR_INAPP_CKSUM; + if (cksum->checksum.length != 16) + return KRB_AP_ERR_MODIFIED; + + md4_init (&m); + md4_update (&m, ptr, len); + md4_finito (&m, csum); + if (memcmp (cksum->checksum.data, csum, 16) == 0) + return 0; + else + return KRB_AP_ERR_MODIFIED; +}