node.js - Crear firma RSA-SHA256 con clave PEM
He estado creando una puerta de enlace para un servicio heredado, este servicio heredado necesita una firma como parámetro del cuerpo de una solicitud PUT, para crear esta firma necesito seguir los siguientes pasos:
- Crea un hash con cierto texto como datos, este hash necesita ser SHA256.
- Encripta el resultado del hash usando RSA con una clave PEM
- Codifica el resultado del RSA a Base64
Siguiendo los pasos anteriores, creo el siguiente código
export class Signature {
// class body
public static sign(text: string){
const key = readFileSync('key.pem')
const passphrase = '12345678'
const createdSign = createSign('RSA-SHA256')
createdSign.write(text)
createdSign.end()
return createdSign.sign({ key, passphrase }).toString('base64')
}
}
Pero no estoy seguro si esta es la implementación correcta, tomando en consideración los pasos previos y la existencia de la API hash en NodeJS.
Si alguien pudiera decirme si estoy implementando correctamente este algoritmo.