Función CryptMsgCountersignEncoded (wincrypt.h)

La función CryptMsgCountersignEncoded contrasigna una firma de mensaje PKCS #7 existente. El pbCountersignature búfer byte que crea es un signerInfo codificado PKCS #7 que se puede usar como un countersignature no autenticado atributo de un PKCS #9 signed-data o signed-and-enveloped-data.

Sintaxis

BOOL CryptMsgCountersignEncoded(
  [in]      DWORD                    dwEncodingType,
  [in]      PBYTE                    pbSignerInfo,
  [in]      DWORD                    cbSignerInfo,
  [in]      DWORD                    cCountersigners,
  [in]      PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
  [out]     PBYTE                    pbCountersignature,
  [in, out] PDWORD                   pcbCountersignature
);

Parámetros

[in] dwEncodingType

Especifica el tipo de codificación usado. Actualmente, solo se usan X509_ASN_ENCODING y PKCS_7_ASN_ENCODING; sin embargo, se pueden agregar tipos de codificación adicionales en el futuro. Para cualquiera de los tipos de codificación actuales, use:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbSignerInfo

Puntero al SignerInfo codificado que se va a contrasignar.

[in] cbSignerInfo

Recuento, en bytes, de los datos signerInfo codificados.

[in] cCountersigners

Número de contadores en la matriz de rgCountersigners.

[in] rgCountersigners

Matriz de estructuras de CMSG_SIGNER_ENCODE_INFO de los contadores.

[out] pbCountersignature

Puntero a un búfer para recibir un atributo PKCS #9 codificado contrafirma.

En la entrada, este parámetro puede ser NULL para establecer el tamaño de esta información con fines de asignación de memoria. Para obtener más información, vea recuperar datos de longitud desconocida.

[in, out] pcbCountersignature

Puntero a una variable que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pbCountersignature. Cuando se devuelve la función, la variable a la que apunta el parámetro pcbCountersignature contiene el número de bytes almacenados en el búfer.

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.

En la tabla siguiente se enumeran los códigos de error devueltos por la función GetLastError.

Código devuelto Descripción
CRYPT_E_OID_FORMAT
El identificador de objeto tiene un formato incorrecto.
E_INVALIDARG
Uno o varios argumentos no son válidos.
E_OUTOFMEMORY
Se quedó sin memoria.
 

Los errores propagados se pueden devolver de una de las funciones siguientes:

Si se produce un error en la función, GetLastError puede devolver un error de notación de sintaxis abstracta uno (ASN.1) de codificación o descodificación. Para obtener información sobre estos errores, vea codificación/descodificación de valores devueltos de ASN.1.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de wincrypt.h
biblioteca de Crypt32.lib
DLL de Crypt32.dll

Consulte también

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

funciones de mensaje de bajo nivel

funciones de mensajes simplificadas