CryptGetHashParam
Aus API-Wiki
Version vom 30. März 2007, 15:21 Uhr von Danielo (Diskussion | Beiträge)
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