PFN_CMSG_EXPORT_KEY_AGREE función de devolución de llamada (wincrypt.h)
La función de devolución de llamada PFN_CMSG_EXPORT_KEY_AGREE cifra y exporta la clave de cifrado de contenido para un destinatario del contrato de clave de un mensaje sobre.
Sintaxis
PFN_CMSG_EXPORT_KEY_AGREE PfnCmsgExportKeyAgree;
BOOL PfnCmsgExportKeyAgree(
[in] PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
[in] PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgreeEncodeInfo,
[in, out] PCMSG_KEY_AGREE_ENCRYPT_INFO pKeyAgreeEncryptInfo,
[in] DWORD dwFlags,
void *pvReserved
)
{...}
Parámetros
[in] pContentEncryptInfo
Puntero a una estructura de CMSG_CONTENT_ENCRYPT_INFO que contiene la clave de cifrado de contenido.
[in] pKeyAgreeEncodeInfo
Puntero a una estructura de CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO que especifica la clave utilizada para cifrar la clave de cifrado de contenido.
[in, out] pKeyAgreeEncryptInfo
Puntero a una estructura de CMSG_KEY_AGREE_ENCRYPT_INFO que contiene la clave de cifrado de contenido cifrada.
[in] dwFlags
Este valor no se usa. Establézcalo en cero.
pvReserved
Este parámetro está reservado y debe ser NULL.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).
Si se produce un error en la función, el valor devuelto es cero (FALSE). Para obtener información de error extendida, llame a GetLastError.
Observaciones
Para cada clave de destinatario, la función PFN_CMSG_EXPORT_KEY_AGREE debe actualizar el miembro EncryptedKey de la estructura CMSG_KEY_AGREE_KEY_ENCRYPT_INFO a la que hace referencia el rgpKeyAgreeKeyEncryptInfo miembro de la estructura CMSG_KEY_AGREE_ENCRYPT_INFO a la que apunta el parámetro pKeyAgreeEncryptInfo. Esta función debe usar los miembros de pfnAlloc y pfnFree de la estructura de CMSG_CONTENT_ENCRYPT_INFO a la que apunta el parámetro pContentEncryptInfo para administrar la memoria de los valores que actualiza.
Si, tras la entrada, el miembro dwEncryptFlags de la estructura de CMSG_CONTENT_ENCRYPT_INFO a la que apunta el miembro pContentEncryptInfo se establece en CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG, el miembro efímero PublicKey de la estructura CERT_PUBLIC_KEY_INFO a la que hace referencia el miembro OriginorPublicKeyInfo de la estructura CMSG_KEY_AGREE_ENCRYPT_INFO apuntada por el El parámetro pKeyAgreeEncryptInfo debe rellenarse con ceros para obtener siempre la misma longitud codificada máxima.
Puede usar funciones de compatibilidad con OID para implementar esta función de devolución de llamada. Wincrypt.h define las constantes siguientes para este propósito.
Debe definir diferentes funciones de devolución de llamada para claves CAPI1 y claves cryptography API: Next Generation (CNG). Ambas funciones tienen la misma firma, pero usan diferentes OID. La función a la que se llama depende del valor del fCNG miembro de la estructura de CMSG_CONTENT_ENCRYPT_INFO a la que apunta el parámetro pContentEncryptInfo. En la tabla siguiente se muestra la relación entre la función de devolución de llamada y el valor del miembro fCNG de
fCNG value | Constante | Definición |
---|---|---|
FALSE | CMSG_OID_EXPORT_KEY_AGREE_FUNC o CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC | "CryptMsgDllExportKeyAgree" |
TRUE | CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC | "CryptMsgDllCNGExportKeyAgree" |
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2003 [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
wincrypt.h |