THash *HashInit(char *Type) { THash *Hash=NULL; Hash=(THash *) calloc(1,sizeof(THash)); Hash->Type=CopyStr(Hash->Type,Type); if (strcasecmp(Type,"md5")==0) HashInitMD5(Hash, 0); else if (strcasecmp(Type,"sha")==0) HashInitSHA(Hash, 0); else if (strcasecmp(Type,"sha1")==0) HashInitSHA(Hash, 0); else if (strcasecmp(Type,"sha256")==0) HashInitSHA(Hash, 256); else if (strcasecmp(Type,"sha512")==0) HashInitSHA(Hash, 512); else if (strcasecmp(Type,"whirl")==0) HashInitWhirlpool(Hash, 0); else if (strcasecmp(Type,"whirlpool")==0) HashInitWhirlpool(Hash, 0); else if (strcasecmp(Type,"jh-224")==0) HashInitJH(Hash,224); else if (strcasecmp(Type,"jh-256")==0) HashInitJH(Hash,256); else if (strcasecmp(Type,"jh-384")==0) HashInitJH(Hash,384); else if (strcasecmp(Type,"jh-512")==0) HashInitJH(Hash,512); //else if (strcasecmp(Type,"crc32")==0) HashInitCRC(Hash, 0); else if (strncasecmp(Type,"hmac-",5)==0) HMACInit(Hash); else { HashDestroy(Hash); Hash=NULL; } return(Hash); }
HASH *HashInit(const char *Type) { HASH *Hash=NULL; char *InitialType=NULL; Hash=(HASH *) calloc(1,sizeof(HASH)); Hash->Type=CopyStr(Hash->Type,Type); strrep(Hash->Type,',',' '); GetToken(Hash->Type,"\\S",&InitialType,0); if (strcasecmp(InitialType,"md5")==0) HashInitMD5(Hash, 0); else if (strcasecmp(InitialType,"sha")==0) HashInitSHA(Hash, 0); else if (strcasecmp(InitialType,"sha1")==0) HashInitSHA(Hash, 0); else if (strcasecmp(InitialType,"sha256")==0) HashInitSHA(Hash, 256); else if (strcasecmp(InitialType,"sha512")==0) HashInitSHA(Hash, 512); else if (strcasecmp(InitialType,"sha-256")==0) HashInitSHA(Hash, 256); else if (strcasecmp(InitialType,"sha-512")==0) HashInitSHA(Hash, 512); else if (strcasecmp(InitialType,"whirl")==0) HashInitWhirlpool(Hash, 0); else if (strcasecmp(InitialType,"whirlpool")==0) HashInitWhirlpool(Hash, 0); else if (strcasecmp(InitialType,"jh224")==0) HashInitJH(Hash,224); else if (strcasecmp(InitialType,"jh256")==0) HashInitJH(Hash,256); else if (strcasecmp(InitialType,"jh384")==0) HashInitJH(Hash,384); else if (strcasecmp(InitialType,"jh512")==0) HashInitJH(Hash,512); else if (strcasecmp(InitialType,"jh-224")==0) HashInitJH(Hash,224); else if (strcasecmp(InitialType,"jh-256")==0) HashInitJH(Hash,256); else if (strcasecmp(InitialType,"jh-384")==0) HashInitJH(Hash,384); else if (strcasecmp(InitialType,"jh-512")==0) HashInitJH(Hash,512); //else if (strcasecmp(InitialType,"crc32")==0) HashInitCRC(Hash, 0); else if (strncasecmp(InitialType,"hmac-",5)==0) HMACInit(Hash); else { RaiseError(0, "HashInit", "Unsupported Hash Type '%s'",InitialType); HashDestroy(Hash); Hash=NULL; } DestroyString(InitialType); return(Hash); }