CryptGetHashParam

Aus API-Wiki
Wechseln zu: Navigation, Suche

Mit der Funktion CryptGetHashParam lassen sich Eigenschaften eines Hash Objektes, nämlich der verwendete Algorithmus, Die Länge des erstellten Hashes, und der Hash Wert selbst ermitteln.

Declare Function CryptGetHashParam Lib "advapi32.dll" ( _
                 ByVal hHash As Long, _
                 ByVal dwParam As Long, _
                 ByVal pbData As Long, _
                 ByRef pdwDataLen As Long, _
                 ByVal dwFlags As Long) As Long


Parameter

hHash

[in] Handle eines mit CryptCreateHash erstellten Hash Objekts.

dwParam

[in] In diesem Parameter wird die Eigenschaft, die ausgelesen werden soll angegeben:
HP_ALGID verwendeter Algorithmus
HP_HASHSIZE Grösse des Hashwertes in Bytes
HP_HASHVAL Hashwert

pbData

[out] In diesem Buffer wird der jeweilige Eigenschaftswert zurückgegeben. Der Buffer muss vor dem Aufruf reserviert werden. Um die benötigte Grösse des Buffers zu ermitteln kann für diesen Parameter NULL übergeben werden, pdwDataLen erhält dann die Anzahl der benötigten Bytes.

pdwDataLen

[in,out] Grösse des in pbData bereitgestellten Buffers in Bytes, nach der Rückkehr enthält diese Variable die tasächlich zurückgegebenen Bytes.

dwFlags

[in] derzeit nicht verwendet, muss 0 sein.


Rückgabe(n)

Bei Erfolg wird ein Wert ungleich 0 zurückgegeben.

Beispiel

	'Länge des Hash's feststellen: 
	If CryptGetHashParam(hHash, HP_HASHVAL, 0, lHashLen, 0) <> 0 Then 
	ReDim bData(lHashLen - 1) 'Buffer vorbereiten
        'Hash auslesen:
	If CryptGetHashParam(hHash, HP_HASHVAL, VarPtr(bData(0)), lHashLen, 0) <> 0 Then 
	    'Success 
	Else 
	    Err.Raise Err.LastDllError, , "CryptGetHashParam Error" 
	End If 
	Else 
	Err.Raise Err.LastDllError, , "CryptGetHashParam Error" 
	End If