⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hmacxtra.c

📁 source of perl for linux application,
💻 C
字号:
#include <stdio.h>#include <string.h>#include "hmac.h"static unsigned char *hmaccomp(alg, fmt, bitstr, bitcnt, key, keylen)int alg;int fmt;unsigned char *bitstr;unsigned long bitcnt;unsigned char *key;unsigned int keylen;{	HMAC *h;	static unsigned char digest[SHA_MAX_HEX_LEN+1];	unsigned char *ret = digest;	if ((h = hmacopen(alg, key, keylen)) == NULL)		return(NULL);	hmacwrite(bitstr, bitcnt, h);	hmacfinish(h);	if (fmt == SHA_FMT_RAW)		memcpy(digest, hmacdigest(h), h->osha->digestlen);	else if (fmt == SHA_FMT_HEX)		strcpy((char *) digest, hmachex(h));	else if (fmt == SHA_FMT_BASE64)		strcpy((char *) digest, hmacbase64(h));	else		ret = NULL;	hmacclose(h);	return(ret);}#define HMAC_DIRECT(type, name, alg, fmt) 			\type name(bitstr, bitcnt, key, keylen)				\unsigned char *bitstr;						\unsigned long bitcnt;						\unsigned char *key;						\unsigned int keylen;						\{								\	return((type) hmaccomp(alg, fmt, bitstr, bitcnt,	\					key, keylen));		\}HMAC_DIRECT(unsigned char *, hmac1digest, SHA1, SHA_FMT_RAW)HMAC_DIRECT(char *, hmac1hex, SHA1, SHA_FMT_HEX)HMAC_DIRECT(char *, hmac1base64, SHA1, SHA_FMT_BASE64)HMAC_DIRECT(unsigned char *, hmac224digest, SHA224, SHA_FMT_RAW)HMAC_DIRECT(char *, hmac224hex, SHA224, SHA_FMT_HEX)HMAC_DIRECT(char *, hmac224base64, SHA224, SHA_FMT_BASE64)HMAC_DIRECT(unsigned char *, hmac256digest, SHA256, SHA_FMT_RAW)HMAC_DIRECT(char *, hmac256hex, SHA256, SHA_FMT_HEX)HMAC_DIRECT(char *, hmac256base64, SHA256, SHA_FMT_BASE64)HMAC_DIRECT(unsigned char *, hmac384digest, SHA384, SHA_FMT_RAW)HMAC_DIRECT(char *, hmac384hex, SHA384, SHA_FMT_HEX)HMAC_DIRECT(char *, hmac384base64, SHA384, SHA_FMT_BASE64)HMAC_DIRECT(unsigned char *, hmac512digest, SHA512, SHA_FMT_RAW)HMAC_DIRECT(char *, hmac512hex, SHA512, SHA_FMT_HEX)HMAC_DIRECT(char *, hmac512base64, SHA512, SHA_FMT_BASE64)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -