Metodo IX509PublicKey::get_EncodedParameters (certenroll.h)

La proprietà EncodedParameters recupera una matrice di byte che contiene i parametri associati all'algoritmo di chiave pubblica . La matrice di byte è rappresentata da una stringa con codifica Unicode.

Questa proprietà è di sola lettura.

Sintassi

HRESULT get_EncodedParameters(
  EncodingType Encoding,
  BSTR         *pValue
);

Parametri

Encoding

pValue

Valore restituito

nessuno

Osservazioni

Chiamare il metodo InitializeFromEncodedPublicKeyInfo o il metodo Initialize per inizializzare l'oggetto chiave pubblica prima di chiamare questa proprietà.

Oggetto AlgorithmIdentifier Abstract Syntax Notation One (ASN.1) a cui fa riferimento l'oggetto SubjectPublicKeyInfo in un certificato X.509 versione 3 contiene un identificatore di oggetto algoritmo (OID) e parametri facoltativi.


SubjectPublicKeyInfo  ::=  SEQUENCE
{
   algorithm            AlgorithmIdentifier,
   subjectPublicKey     BIT STRING  
}

AlgorithmIdentifier  ::=  SEQUENCE  
{
   algorithm            OBJECT IDENTIFIER,
   parameters           ANY DEFINED BY algorithm OPTIONAL  
}

Il formato e il contenuto dei parametri differiscono dall'algoritmo. Il controllo registrazione certificati genera i valori dei parametri per vari algoritmi in base alle esigenze. Per altre informazioni, vedere le sezioni seguenti:

  • Algoritmo di chiave pubblica RSA
  • Trasporto chiave con RSA-OAEP
  • Contratto chiave con ECDH
  • Crittografia del contenuto tramite AES

Algoritmo di chiave pubblica RSA

RSA viene spesso usato per crittografare una chiave privata e inviarla a un'autorità di certificazione (CA) per l'archiviazione. L'algoritmo XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) deve avere un valore di parametro NULL . Il valore ASN.1 NULL è rappresentato da due byte. Il numero di tag è 0x05 e il valore associato al tag è 0x00. Questo è illustrato dall'esempio di certificato seguente.

...
Public Key Algorithm:
    Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_KEYX)
    Algorithm Parameters:
    05 00
...

Trasporto chiave con RSA-OAEP

L'algoritmo RSA-OAEP, XCN_OID_RSAES_OAEP (1.2.840.113549.1.1.7), è supportato anche per il trasporto delle chiavi. Il campo parametri ha la sintassi seguente.

RSAES-OAEP-params  ::=  SEQUENCE  
{
   hashFunc    [0] AlgorithmIdentifier DEFAULT sha1OID,
   maskGenFunc [1] AlgorithmIdentifier DEFAULT mgf1SHA1OID,
   pSourceFunc [2] AlgorithmIdentifier DEFAULT pSpecifiedEmptyOID
}

Contratto chiave con ECDH

L'algoritmo Elliptic Curve Diffie-Hellman, XCN_OID_DH_SINGLE_PASS_STDDH_SHA1_KDF (1.3.133.16.840.63.0.2), è supportato per il contratto chiave. Il contratto chiave usa due livelli di crittografia:KeK viene calcolato da un numero di segreto condiviso calcolato dalla chiave privata di una parte e dalla chiave pubblica dell'altra parte. Il campo parametri contiene l'OID dell'algoritmo KEK usato per eseguire il wrapping o crittografare il codice CEK. Sono supportati gli algoritmi di wrapping seguenti:
  • XCN_OID_RSA_SMIMEalgCMS3DESwrap (1.2.840.113549.1.9.16.3.)
  • XCN_OID_RSA_SMIMEalgCMSRC2wrap (1.2.840.113549.1.9.16.3.7)
  • XCN_OID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
  • XCN_OID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
  • XCN_OID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)

Crittografia del contenuto tramite AES

L'AES (Advanced Encryption Standard) viene usato per crittografare il contenuto. Sono supportati gli algoritmi seguenti:
  • XCN_OID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2)
  • XCN_OID_NIST_AES192_CBC (2.16.840.1.101.3.4.1.22)
  • XCN_OID_NIST_AES256_CBC (2.16.840.1.101.3.4.1.42)
Il campo parametri contiene un vettore di inizializzazione casuale, AES-IV.

AES-IV ::= OCTET STRING (SIZE(16))

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
DLL CertEnroll.dll

Vedi anche

IX509PublicKey