summaryrefslogtreecommitdiff
path: root/sqmail-4.3.07/src/hmac_md5.c
diff options
context:
space:
mode:
Diffstat (limited to 'sqmail-4.3.07/src/hmac_md5.c')
-rw-r--r--sqmail-4.3.07/src/hmac_md5.c52
1 files changed, 0 insertions, 52 deletions
diff --git a/sqmail-4.3.07/src/hmac_md5.c b/sqmail-4.3.07/src/hmac_md5.c
deleted file mode 100644
index 310f0ef..0000000
--- a/sqmail-4.3.07/src/hmac_md5.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include "global.h"
-#include "md5.h"
-#include "str.h"
-#include "byte.h"
-
-/**
-@file hmac_md5
-@brief caculates HMAC digest from challenge + password (DJB version)
-@param input: unsigned char *text : pointer to challenge
- int text_len : length of challenge
- unsigned char *key : pointer to password
- int key_len : length of password
- output: unsigned char *digest: pointer to calculated digest
-*/
-
-void hmac_md5(unsigned char *text,int text_len,unsigned char * key,int key_len,unsigned char *digest)
-{
- MD5_CTX context;
- unsigned char k_ipad[65]; /* inner padding - key XORd with ipad */
- unsigned char k_opad[65]; /* outer padding - key XORd with opad */
- unsigned char tk[16];
- int i;
-
- if (key_len > 64) {
- MD5_CTX tctx;
- MD5Init(&tctx);
- MD5Update(&tctx,key,key_len);
- MD5Final(tk,&tctx);
- key = tk;
- key_len = 16;
- }
-
- byte_zero(k_ipad,sizeof(k_ipad));
- byte_zero(k_opad,sizeof(k_opad));
- byte_copy(k_ipad,key_len,key);
- byte_copy(k_opad,key_len,key);
-
- for (i = 0; i < 64; i++) {
- k_ipad[i] ^= 0x36;
- k_opad[i] ^= 0x5c;
- }
-
- MD5Init(&context); /* init context for 1st pass */
- MD5Update(&context,k_ipad,64); /* start with inner pad */
- MD5Update(&context,text,text_len); /* then text of datagram */
- MD5Final(digest,&context); /* finish up 1st pass */
-
- MD5Init(&context); /* init context for 2nd pass */
- MD5Update(&context,k_opad,64); /* start with outer pad */
- MD5Update(&context,digest,16); /* then results of 1st hash */
- MD5Final(digest,&context); /* finish up 2nd pass */
-}