Interfaccia IX509CertificateRequestPkcs7 (certenroll.h)

L'interfaccia IX509CertificateRequestPkcs7 rappresenta un oggetto sintassi del messaggio del certificato PKCS #7. PKCS #7 definisce il formato dei messaggi inviati a un'autorità di certificazione o di registrazione per richiedere un certificato a chiave pubblica. L'interfaccia IX509CertificateRequestPkcs7 può generare confusione perché la sua implementazione non rispecchia perfettamente il modo in cui la maggior parte dei professionisti della sicurezza pensa allo standard PKCS #7. Per evitare questa confusione, tenere presente quanto segue:

  • Sebbene venga usato un messaggio PKCS #7 per eseguire il wrapping di una richiesta CMC, un oggetto IX509CertificateRequestPkcs7 non può contenere un oggetto IX509CertificateRequestCmc . L'interfaccia IX509CertificateRequestCmc eredita e implementa invece l'interfaccia IX509CertificateRequestPkcs7 . Come implementato, una richiesta CMC è quindi un oggetto SignedData PKCS #7 che contiene contenuto CMC, una firma primaria con firma Null o basata su chiave e zero o più firme basate su certificati. Al contrario, una richiesta PKCS #7 è un oggetto SignedData che contiene contenuto PKCS #10 (vedere l'elemento successivo in questo elenco) e ha esattamente una firma basata su certificato.
  • Un oggetto IX509CertificateRequestPkcs7 deve contenere un oggetto IX509CertificateRequestPkcs10 . Il vantaggio principale del wrapping di una richiesta PKCS #10 in un messaggio PKCS #7 è la possibilità di aggiungere più firmatari. La richiesta PKCS #10 viene firmata dalla chiave privata associata e viene firmato anche il messaggio PKCS #7 che esegue il wrapping della richiesta PKCS #10. Questo secondo firmatario usa il certificato da rinnovare (per una richiesta di rinnovo) o il certificato dell'agente di registrazione (per una richiesta di registrazione per conto dell'utente).
  • È possibile creare e registrare una richiesta di certificato IX509CertificateRequestPkcs10 autonoma senza eseguire il wrapping in un oggetto IX509CertificateRequestPkcs7 .

La rappresentazione ASN.1 di un oggetto PKCS #7 nell'esempio di sintassi seguente mostra che può essere composta da un'ampia gamma di tipi di dati.


PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
{
    data | signed-data | enveloped-data | signed-and-enveloped-data |
    digested-data | encrypted-data | authenticated-data, ...
}

Di questi, l'oggetto SignedData illustrato di seguito è più rilevante. L'oggetto SignerInfo a cui si fa riferimento nell'oggetto SignedData contiene le informazioni sulla firma. Per una discussione più completa, vedere Attributi PKCS #7.


-------------------------------------------------------------------
-- signed-data
-------------------------------------------------------------------

SignedData ::= SEQUENCE 
{
  version           INTEGER,
  digestAlgorithms  DigestAlgorithmIdentifiers,
  contentInfo       ContentInfo,
  certificates      [0] IMPLICIT Certificates OPTIONAL,
  crls              [1] IMPLICIT CertificateRevocationLists OPTIONAL,
  signerInfos       SignerInfos
}

SignerInfo ::= SEQUENCE 
{
  version                     INTEGER,
  sid                         CertIdentifier,
  digestAlgorithm             DigestAlgorithmIdentifier,
  authenticatedAttributes     [0] IMPLICIT Attributes OPTIONAL,
  signatureAlgorithm          SignatureAlgorithmIdentifier,
  signature                   SignatureValue,
  unauthenticatedAttributes   [1] IMPLICIT Attributes
}
 

Ereditarietà

L'interfaccia IX509CertificateRequestPkcs7 eredita da IX509CertificateRequest. IX509CertificateRequestPkcs7 include anche questi tipi di membri:

Metodi

L'interfaccia IX509CertificateRequestPkcs7 include questi metodi.

 
IX509CertificateRequestPkcs7::get_RequesterName

Specifica o recupera una stringa contenente il nome sam (Security Account Manager) dell'entità finale che richiede il certificato. (Get)
IX509CertificateRequestPkcs7::get_SignerCertificate

Specifica o recupera un certificato utilizzato per firmare la richiesta di certificato. (Get)
IX509CertificateRequestPkcs7::InitializeDecode

Decodifica un pkCS firmato o non firmato esistente (IX509CertificateRequestPkcs7.InitializeDecode)
IX509CertificateRequestPkcs7::InitializeFromCertificate

Inizializza la richiesta di certificato utilizzando un certificato esistente. (IX509CertificateRequestPkcs7.InitializeFromCertificate)
IX509CertificateRequestPkcs7::InitializeFromInnerRequest

Inizializza la richiesta di certificato dall'infrastruttura PKCS interna
IX509CertificateRequestPkcs7::InitializeFromTemplateName

Inizializza la richiesta di certificato usando un modello. (IX509CertificateRequestPkcs7.InitializeFromTemplateName)
IX509CertificateRequestPkcs7::p ut_RequesterName

Specifica o recupera una stringa contenente il nome sam (Security Account Manager) dell'entità finale che richiede il certificato. (Put)
IX509CertificateRequestPkcs7::p ut_SignerCertificate

Specifica o recupera un certificato utilizzato per firmare la richiesta di certificato. (Put)

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certenroll.h

Vedi anche

Interfacce CertEnroll

IX509CertificateRequest