Función NCryptProtectSecret (ncryptprotect.h)

La función NCryptProtectSecret cifra los datos en un descriptor de protección especificado. Llame a NCryptUnprotectSecret para descifrar los datos.

Sintaxis

SECURITY_STATUS NCryptProtectSecret(
  [in]           NCRYPT_DESCRIPTOR_HANDLE hDescriptor,
  [in]           DWORD                    dwFlags,
  [in]           const BYTE               *pbData,
  [in]           ULONG                    cbData,
  [in, optional] const NCRYPT_ALLOC_PARA  *pMemPara,
  [in, optional] HWND                     hWnd,
  [out]          BYTE                     **ppbProtectedBlob,
  [out]          ULONG                    *pcbProtectedBlob
);

Parámetros

[in] hDescriptor

Identificador del objeto descriptor de protección. Cree el identificador mediante una llamada a NCryptCreateProtectionDescriptor.

[in] dwFlags

La marca puede ser cero o el siguiente valor.

Valor Significado
NCRYPT_SILENT_FLAG
Solicita que el proveedor de servicios clave no muestre una interfaz de usuario.

[in] pbData

Puntero a la matriz de bytes que se va a proteger.

[in] cbData

Número de bytes de la matriz binaria especificada por el parámetro pbData .

[in, optional] pMemPara

Puntero a una estructura de NCRYPT_ALLOC_PARA que puede usar para especificar funciones de administración de memoria personalizadas. Si establece este argumento en NULL, la función LocalAlloc se usa internamente para asignar memoria y la aplicación debe llamar a LocalFree para liberar memoria a la que apunta el parámetro ppbProtectedBlob .

[in, optional] hWnd

Controle a la ventana primaria de la interfaz de usuario, si existe, que se va a mostrar.

[out] ppbProtectedBlob

Dirección de una variable que recibe un puntero a los datos cifrados.

[out] pcbProtectedBlob

Puntero a una variable ULONG que contiene el tamaño, en bytes, de los datos cifrados a los que apunta la variable ppbProtectedBlob .

Valor devuelto

Devuelve un código de estado que indica el éxito o error de la función. Entre los códigos de retorno posibles se incluyen, entre otros, los siguientes.

Código devuelto Descripción
ERROR_SUCCESS
La función se realizó correctamente.
NTE_INVALID_PARAMETER
Los parámetros pbData, ppbProtectedBlob y pcbProtectedBlob no pueden ser NULL.

El parámetro cbData no puede ser menor que uno.

NTE_NO_MEMORY
Existe memoria insuficiente para asignar la clave de cifrado de contenido.
NTE_INVALID_HANDLE
El identificador especificado por el parámetro hDescriptor no es válido.

Comentarios

Use la función NCryptProtectSecret para proteger las claves, el material de clave y las contraseñas. Use las funciones NCryptStreamOpenToProtect y NCryptStreamUpdate para cifrar mensajes más grandes.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ncryptprotect.h
Library NCrypt.lib
Archivo DLL NCrypt.dll

Consulte también

Funciones dpAPI de CNG

NCryptCreateProtectionDescriptor

NCryptUnprotectSecret