mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-10 15:17:44 +00:00
27 lines
735 B
TypeScript
27 lines
735 B
TypeScript
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');
|
|
}
|