HASH_HexFromHex creates a message digest hash in hexadecimal format from data in a
hexadecimal-encoded string.
The hash algorithm to use is passed in the options parameter.
Public Declare Function HASH_HexFromHex Lib "diCrPKI.dll"
(ByVal strOutput As String, ByVal nMaxChars As Long, ByVal strMsgHex As String, ByVal nOptions As Long) As Long
nRet = HASH_HexFromHex(strOutput, nMaxChars, strMsgHex, nOptions)
String to receive hash digest in hexadecimal format.Long specifying the maximum number of characters to be received.String containing the message data in hexadecimal-encoded format.Long Option flags. Select one of:
long _stdcall HASH_HexFromHex(char *szOutput, long nMaxChars, const char *szMsgHex, long nOptions);
Long: If successful, the return value is the number of characters in the output string;
otherwise it returns a negative error code.
Specify a zero nOutChars or a NULL strOutput parameter
to find out the required length of the output string,
or use the appropriate PKI_xxx_CHARS constant.
The maximum number of characters is PKI_MAX_HASH_CHARS.
C/C++ users should add one to this value before allocating memory.
The final digest will be truncated to the specified length if less than the expected size.
Valid input hex digits are [0-9A-Fa-f]. The output is always in lower-case letters.
Dim strDigest As String Dim nRet As Long Dim strData As String ' Compute SHA-1("abc") strDigest = String(PKI_SHA1_CHARS, " ") strData = "616263" nRet = HASH_HexFromHex(strDigest, Len(strDigest), strData, PKI_HASH_SHA1) Debug.Print strDigest ' Compute SHA-224("abc") strDigest = String(PKI_SHA224_CHARS, " ") strData = "616263" nRet = HASH_HexFromHex(strDigest, Len(strDigest), strData, PKI_HASH_SHA224) Debug.Print strDigest
This should produce the following output:
a9993e364706816aba3e25717850c26c9cd0d89d 23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7