[v2] bcrypt: Added BCryptHash function.

Hans Leidekker hans at codeweavers.com
Wed Mar 23 04:41:31 CDT 2016


On Tue, 2016-03-22 at 07:50 -0700, Patrick Armstrong wrote:
> +NTSTATUS WINAPI BCryptHash( BCRYPT_ALG_HANDLE algorithm, UCHAR *secret, ULONG secretlen,
> +                            UCHAR *input, ULONG inputlen, UCHAR *output, ULONG outputlen )
> +{
> +    NTSTATUS status;
> +    BCRYPT_HASH_HANDLE handle;
> +
> +    TRACE( "%p, %p, %u, %p, %u, %p, %u\n", algorithm, secret, secretlen,
> +           input, inputlen, output, outputlen );
> +
> +    status = BCryptCreateHash( algorithm, &handle, NULL, 0, secret, secretlen, 0);
> +    if (status != STATUS_SUCCESS)
> +    {
> +        BCryptDestroyHash( handle );
> +        return status;
> +    }

BCryptCreateHash doesn't return a handle when it fails.

>  NTSTATUS WINAPI BCryptCloseAlgorithmProvider(BCRYPT_ALG_HANDLE, ULONG);
>  NTSTATUS WINAPI BCryptCreateHash(BCRYPT_ALG_HANDLE, BCRYPT_HASH_HANDLE *, PUCHAR, ULONG, PUCHAR, ULONG, ULONG);
>  NTSTATUS WINAPI BCryptDestroyHash(BCRYPT_HASH_HANDLE);
> +NTSTATUS WINAPI BCryptHash(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, PUCHAR, ULONG, PUCHAR, ULONG);
>  NTSTATUS WINAPI BCryptEnumAlgorithms(ULONG, ULONG *, BCRYPT_ALGORITHM_IDENTIFIER **, ULONG);
>  NTSTATUS WINAPI BCryptFinishHash(BCRYPT_HASH_HANDLE, PUCHAR, ULONG, ULONG);
>  NTSTATUS WINAPI BCryptGenRandom(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, ULONG);

While you're at it, please keep these sorted.





More information about the wine-devel mailing list