Funzione CryptMsgCountersignEncoded (wincrypt.h)

La funzione CryptMsgCountersignEncoded controfirma una firma del messaggio PKCS #7 esistente. Il buffer pbCountersignaturaBYTE creato è un signerInfo con codifica PKCS #7 che può essere usato come attributo Countersignature non autenticato di un messaggio pkCS #9 signed-data o signed-and-enveloped-data.

Sintassi

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
);

Parametri

[in] dwEncodingType

Specifica il tipo di codifica utilizzato. Attualmente vengono usati solo X509_ASN_ENCODING e PKCS_7_ASN_ENCODING; Tuttavia, è possibile aggiungere altri tipi di codifica in futuro. Per entrambi i tipi di codifica correnti, usare:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbSignerInfo

Puntatore all'oggetto SignerInfo codificato che deve essere controfirmato.

[in] cbSignerInfo

Conteggio, in byte, dei dati SignerInfo codificati.

[in] cCountersigners

Numero di controfirmatori nella matrice rgCountersigners .

[in] rgCountersigners

Matrice di strutture di CMSG_SIGNER_ENCODE_INFO dei controfirmatori.

[out] pbCountersignature

Puntatore a un buffer per ricevere un attributo di controfirma PKCS #9 codificato.

In input, questo parametro può essere NULL per impostare le dimensioni di queste informazioni a scopo di allocazione della memoria. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.

[in, out] pcbCountersignature

Puntatore a una variabile che specifica le dimensioni, in byte, del buffer a cui punta il parametro pbCountersignatura . Quando la funzione viene restituita, la variabile a cui punta il parametro pcbCountersignatura contiene il numero di byte archiviati nel buffer.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).

Se la funzione ha esito negativo, il valore restituito è zero (FALSE). Per informazioni sugli errori estesi, chiamare GetLastError.

Nella tabella seguente sono elencati i codici di errore restituiti più di frequente dalla funzione GetLastError .

Codice restituito Descrizione
CRYPT_E_OID_FORMAT
L'identificatore dell'oggetto non è formattato in modo corretto.
E_INVALIDARG
Uno o più argomenti non sono validi.
E_OUTOFMEMORY
Memoria insufficiente.
 

Gli errori propagati possono essere restituiti da una delle funzioni seguenti:

Se la funzione ha esito negativo, GetLastError può restituire un errore di codifica/decodifica ASN.1 ( Abstract Syntax Notation One ). Per informazioni su questi errori, vedere Codifica ASN.1/Decodifica dei valori restituiti.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CryptMsgCountersign

CryptMsgVerifyCountersignaturaEncoded

Funzioni messaggio di basso livello

Funzioni di messaggio semplificate