Compartir a través de


Codificación de una estructura de CERT_INFO

El proceso de codificación es el inverso del proceso de descodificación descrito en Descodificación de una estructura de CERT_INFO. Por ejemplo, el procedimiento siguiente agregaría un emisor codificado a una estructura de CERT_INFO . Vea también la ilustración que sigue al procedimiento.

Para agregar un emisor codificado a una estructura de CERT_INFO

  1. Cree una cadena que contenga el nombre del emisor que se va a usar.
  2. Cree una matriz de estructuras de CERT_RDN_ATTR , que se inicializará para contener la información adecuada sobre la cadena de nombre del emisor recién creada.
  3. Cree una matriz de estructuras de CERT_RDN , una de las cuales tiene la información sobre la matriz de estructuras de CERT_RDN_ATTR que acaba de inicializar.
  4. Cree una estructura CERT_NAME_INFO que tenga un puntero a la matriz de estructuras de CERT_RDN que acaba de crear.
  5. Llame a CryptEncodeObject para obtener el tamaño del BLOB codificado en la salida y pasarla la dirección de la estructura de CERT_NAME_INFO que acaba de crear.
  6. Asigne memoria para el BLOB codificado en la salida.
  7. Llame a CryptEncodeObject de nuevo, pasándolo la misma información, pero ahora pasándola la dirección de la memoria que acaba de asignar.
  8. Establezca el miembro Issuer.cbData de la estructura CERT_INFO en el tamaño devuelto en el paso 5 y el miembro Issuer.pbData en la dirección obtenida en el paso 6. El BLOB emisor codificado ahora reside allí.

agregar un emisor codificado a una estructura de información de certificado

Para inicializar y codificar cierta información de extensión de certificado, use el procedimiento siguiente. Vea también la ilustración que sigue al procedimiento.

Para agregar información de extensión codificada a una estructura de CERT_INFO

  1. Cree e inicialice una estructura de información de extensión; en este ejemplo, es una estructura CERT_BASIC_CONSTRAINTS_INFO .
  2. Llame a CryptEncodeObject, pasando la dirección de la estructura que acaba de crear para obtener el tamaño del BLOB codificado de salida.
  3. Asigne memoria para el BLOB codificado en la salida.
  4. Vuelva a llamar a CryptEncodeObject y pase la misma información, excepto que ahora pase la dirección de la memoria asignada.
  5. Cree una matriz de estructuras de CERT_EXTENSION .
  6. Inicialice una de las estructuras de CERT_EXTENSION para que pszObjId sea la cadena adecuada para los datos contenidos en Value y que Value contiene los datos cifrados BLOB que se generaron desde la llamada a CryptEncodeObject.
  7. Inicialice el miembro rgExtension de la estructura CERT_INFO para que apunte a la matriz de estructuras de CERT_EXTENSION .

agregar información de extensión codificada a una estructura de información de certificado