From: Ariel Darshan abdaandroid@gmail.com
Signed-off-by: Ariel Darshan abdaandroid@gmail.com --- dlls/ncrypt/main.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/dlls/ncrypt/main.c b/dlls/ncrypt/main.c index a183eb00bb3..d940a49c1e4 100644 --- a/dlls/ncrypt/main.c +++ b/dlls/ncrypt/main.c @@ -345,8 +345,25 @@ SECURITY_STATUS WINAPI NCryptExportKey(NCRYPT_PROV_HANDLE provider, NCRYPT_KEY_H
SECURITY_STATUS WINAPI NCryptFinalizeKey(NCRYPT_KEY_HANDLE key, DWORD flags) { - FIXME("(0x%lx, 0x%08x): stub\n", key, flags); - return NTE_NOT_SUPPORTED; + struct ncrypt_key_instance *keyInstance; + struct ncrypt_provider_instance *providerInstance; + + TRACE("(0x%lx, 0x%08x)\n", key, flags); + + + if (!key) + { + return NTE_INVALID_HANDLE; + } + keyInstance = handle2key(key); + + if (!keyInstance->provider) + { + return NTE_INVALID_HANDLE; + } + providerInstance = handle2provider(keyInstance->provider); + + return providerInstance->functions.FinalizeKey(providerInstance->kspHandle, keyInstance->kspHandle, flags); }
SECURITY_STATUS WINAPI NCryptFreeBuffer(PVOID buf)