bcrypt: Implement BCryptDuplicateHash.
Signed-off-by: Michael Müller <michael@fds-team.de> Signed-off-by: Sebastian Lackner <sebastian@fds-team.de> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1ffe98264c
commit
da8853f062
|
@ -11,7 +11,7 @@
|
||||||
@ stdcall BCryptDestroyHash(ptr)
|
@ stdcall BCryptDestroyHash(ptr)
|
||||||
@ stub BCryptDestroyKey
|
@ stub BCryptDestroyKey
|
||||||
@ stub BCryptDestroySecret
|
@ stub BCryptDestroySecret
|
||||||
@ stub BCryptDuplicateHash
|
@ stdcall BCryptDuplicateHash(ptr ptr ptr long long)
|
||||||
@ stub BCryptDuplicateKey
|
@ stub BCryptDuplicateKey
|
||||||
@ stub BCryptEncrypt
|
@ stub BCryptEncrypt
|
||||||
@ stdcall BCryptEnumAlgorithms(long ptr ptr long)
|
@ stdcall BCryptEnumAlgorithms(long ptr ptr long)
|
||||||
|
|
|
@ -536,6 +536,27 @@ end:
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NTSTATUS WINAPI BCryptDuplicateHash( BCRYPT_HASH_HANDLE handle, BCRYPT_HASH_HANDLE *handle_copy,
|
||||||
|
UCHAR *object, ULONG objectlen, ULONG flags )
|
||||||
|
{
|
||||||
|
struct hash *hash_orig = handle;
|
||||||
|
struct hash *hash_copy;
|
||||||
|
|
||||||
|
TRACE( "%p, %p, %p, %u, %u\n", handle, handle_copy, object, objectlen, flags );
|
||||||
|
|
||||||
|
if (!hash_orig || hash_orig->hdr.magic != MAGIC_HASH) return STATUS_INVALID_HANDLE;
|
||||||
|
if (!handle_copy) return STATUS_INVALID_PARAMETER;
|
||||||
|
if (object) FIXME( "ignoring object buffer\n" );
|
||||||
|
|
||||||
|
if (!(hash_copy = HeapAlloc( GetProcessHeap(), 0, sizeof(*hash_copy) )))
|
||||||
|
return STATUS_NO_MEMORY;
|
||||||
|
|
||||||
|
memcpy( hash_copy, hash_orig, sizeof(*hash_orig) );
|
||||||
|
|
||||||
|
*handle_copy = hash_copy;
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS WINAPI BCryptDestroyHash( BCRYPT_HASH_HANDLE handle )
|
NTSTATUS WINAPI BCryptDestroyHash( BCRYPT_HASH_HANDLE handle )
|
||||||
{
|
{
|
||||||
struct hash *hash = handle;
|
struct hash *hash = handle;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
@ stdcall BCryptDestroyHash(ptr) bcrypt.BCryptDestroyHash
|
@ stdcall BCryptDestroyHash(ptr) bcrypt.BCryptDestroyHash
|
||||||
@ stub BCryptDestroyKey
|
@ stub BCryptDestroyKey
|
||||||
@ stub BCryptDestroySecret
|
@ stub BCryptDestroySecret
|
||||||
@ stub BCryptDuplicateHash
|
@ stdcall BCryptDuplicateHash(ptr ptr ptr long long) bcrypt.BCryptDuplicateHash
|
||||||
@ stub BCryptDuplicateKey
|
@ stub BCryptDuplicateKey
|
||||||
@ stub BCryptEncrypt
|
@ stub BCryptEncrypt
|
||||||
@ stdcall BCryptEnumAlgorithms(long ptr ptr long) bcrypt.BCryptEnumAlgorithms
|
@ stdcall BCryptEnumAlgorithms(long ptr ptr long) bcrypt.BCryptEnumAlgorithms
|
||||||
|
|
Loading…
Reference in New Issue