Tengo un certificado p12 que necesito usar para crear firmas digitales que se enviarán en los encabezados de una solicitud HTTP. Estoy usando el paquete node-forge para obtener la clave privada y las bolsas de certificados del archivo p12.
const p12Asn1 = forge.asn1.fromDer(keyFile) const p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, passwordHash) const certificateBags = p12.getBags({ bagType: forge.pki.oids.certBag }) const certificate = certificateBags[forge.pki.oids.certBag][0].certTengo instrucciones del proveedor de la API para crear la firma digital. Un paso es:
keyId: obtenga el certificado X509 que acompaña a la clave privada como una matriz de bytes y codificación Base64. Este campo es requerido.
¿Cómo puedo codificar en Base64 el certificado extraído de las bolsas anteriores? Probé varios métodos de utilidad de falsificación, forge.util , pero el certificado es un objeto en este punto, por lo que no estoy seguro de qué bit necesita codificación.