Compartir a través de


Método IX509PublicKey::get_EncodedParameters (certenroll.h)

La propiedad EncodedParameters recupera una matriz de bytes que contiene los parámetros asociados al algoritmo de clave pública . La matriz de bytes se representa mediante una cadena con codificación Unicode.

Esta propiedad es de solo lectura.

Sintaxis

HRESULT get_EncodedParameters(
  EncodingType Encoding,
  BSTR         *pValue
);

Parámetros

Encoding

pValue

Valor devuelto

None

Observaciones

Llame al método InitializeFromEncodedPublicKeyInfo o al método Initialize para inicializar el objeto de clave pública antes de llamar a esta propiedad.

El objeto AlgorithmIdentifier Abstract Syntax Notation One (ASN.1) al que hace referencia el objeto SubjectPublicKeyInfo en un certificado X.509 versión 3 contiene un identificador de objeto de algoritmo (OID) y parámetros opcionales.


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

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

El formato y el contenido de los parámetros difieren según el algoritmo. El control de inscripción de certificados genera valores de parámetro para varios algoritmos según sea necesario. Para obtener más información, consulte las secciones siguientes:

  • Algoritmo de clave pública RSA
  • Transporte de claves mediante RSA-OAEP
  • Contrato clave mediante ECDH
  • Cifrado de contenido mediante AES

Algoritmo de clave pública RSA

RSA se usa a menudo para cifrar una clave privada y enviarlo a una entidad de certificación (CA) para archivar. El XCN_OID_RSA_RSA (1.2.840.113549.1.1.1). El OID del algoritmo debe tener un valor de parámetro NULL . El valor NULL de ASN.1 se representa mediante dos bytes. El número de etiqueta es 0x05 y el valor asociado a la etiqueta se 0x00. Esto se muestra en el ejemplo de certificado siguiente.

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

Transporte de claves mediante RSA-OAEP

El algoritmo RSA-OAEP, XCN_OID_RSAES_OAEP (1.2.840.113549.1.1.7), también se admite para el transporte de claves. El campo de parámetros tiene la sintaxis siguiente.

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

Contrato clave mediante ECDH

El algoritmo de curva elíptica de paso único Diffie-Hellman, XCN_OID_DH_SINGLE_PASS_STDDH_SHA1_KDF (1.3.133.16.840.63.0.2), se admite para el acuerdo de clave. El acuerdo de clave usa dos niveles de cifrado:
  • El mensaje se cifra mediante una clave de cifrado de contenido (CEK) y un algoritmo de cifrado simétrico .
  • La CEK se cifra (encapsula) mediante una clave de cifrado de clave simétrica (KEK).
La KEK se calcula a partir de un número de secreto compartido que se calcula a partir de la clave privada de una entidad y la clave pública de la otra parte. El campo de parámetros contiene el OID del algoritmo KEK que se usa para encapsular o cifrar la CEK. Se admiten los siguientes algoritmos de ajuste:
  • 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)

Cifrado de contenido mediante AES

El estándar de cifrado avanzado (AES) se usa para cifrar el contenido. Se admiten los siguientes algoritmos:
  • 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)
El campo de parámetros contiene un vector de inicialización aleatorio, AES-IV.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certenroll.h
Archivo DLL CertEnroll.dll

Consulte también

IX509PublicKey