Función NCryptStreamOpenToProtect (ncryptprotect.h)

La función NCryptStreamOpenToProtect abre un objeto de secuencia que se puede usar para cifrar grandes cantidades de datos en un descriptor de protección determinado. Llame a NCryptStreamUpdate para cifrar el contenido. Para cifrar mensajes más pequeños, como claves y contraseñas, llame a NCryptProtectSecret.

Sintaxis

SECURITY_STATUS NCryptStreamOpenToProtect(
  [in]           NCRYPT_DESCRIPTOR_HANDLE   hDescriptor,
                 DWORD                      dwFlags,
  [in, optional] HWND                       hWnd,
  [in]           NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
  [out]          NCRYPT_STREAM_HANDLE       *phStream
);

Parámetros

[in] hDescriptor

Identificador del descriptor de protección. Cree el identificador llamando a NCryptCreateProtectionDescriptor.

dwFlags

La marca puede ser cero o el valor siguiente.

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

[in, optional] hWnd

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

[in] pStreamInfo

Puntero a una estructura de NCRYPT_PROTECT_STREAM_INFO que contiene la dirección de una función de devolución de llamada definida por el usuario para recibir los datos cifrados y un puntero a los datos de contexto definidos por el usuario.

[out] phStream

Puntero al identificador del objeto de secuencia.

Valor devuelto

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

Código devuelto Descripción
ERROR_SUCCESS
La función se realizó correctamente.
NTE_BAD_FLAGS
El parámetro dwFlags debe contener cero (0), NCRYPT_MACHINE_KEY_FLAG o NCRYPT_SILENT_FLAG.
NTE_INVALID_HANDLE
El identificador especificado por el parámetro hDescriptor no es válido.
NTE_INVALID_PARAMETER
Los parámetros phStream y pStreamInfo no pueden ser NULL.

La función de devolución de llamada a la que apunta el miembro pfnStreamOutput de la estructura NCRYPT_PROTECT_STREAM_INFO a la que apunta el parámetro pStreamInfo no puede ser NULL.

NTE_NO_MEMORY
No había memoria suficiente para asignar un flujo de datos.

Comentarios

La función NCryptStreamOpenToProtect crea un objeto de secuencia interno que se puede usar para cifrar mensajes grandes. No se puede usar el objeto directamente. En su lugar, debe usar el identificador de objeto devuelto por esta función.

Llame a esta función antes de llamar a la función NCryptStreamUpdate . Si va a cifrar un archivo grande, use NCryptStreamUpdate en un bucle que avanza a través del bloque de archivos por bloque, cifrando cada bloque a medida que avanza y notificando la devolución de llamada cuando finalice cada bloque. Para obtener más información, vea NCryptStreamUpdate.

La función NCryptStreamOpenToProtect escribe la cadena de regla del descriptor de protección sin cifrar en el encabezado del objeto de secuencia para que NCryptStreamOpenToUnprotect pueda iniciar el descifrado de la secuencia mediante el mismo protector usado durante el cifrado.

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 de DPAPI de CNG

NCRYPT_PROTECT_STREAM_INFO

NCryptCreateProtectionDescriptor

NCryptStreamClose

NCryptStreamOpenToUnprotect

NCryptStreamUpdate