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 |