import * as crypto from 'crypto'; export function verifySignature( publicKeyBase64: string, signatureBase64: string, message: string, algorithm: 'SHA1' | 'SHA384', ) { const signatureBuffer = Buffer.from(signatureBase64, 'base64'); const publicKeyPEM = '-----BEGIN PUBLIC KEY-----\n' + publicKeyBase64 + '\n-----END PUBLIC KEY-----'; const verifier = crypto.createVerify(algorithm); verifier.update(message, 'utf8'); return verifier.verify( { key: publicKeyPEM, padding: crypto.constants.RSA_PKCS1_PADDING, }, signatureBuffer, ); } export function removePadding(originalSignature: string) { const buffer = Buffer.from(originalSignature, 'base64'); return buffer.toString('base64'); }