dte-signer-sv
Version:
Sign Digital Tax Documents (DTE) for El Salvador's Ministry of Finance
19 lines • 727 B
JavaScript
import crypto from "crypto";
import jose from "node-jose";
export const HASH_ALGORITHM = "sha512";
export const PRIVATE_KEY_HASH_ALGORITHM = "pkcs8";
export const SIGNATURE_ALGORITHM = "RS512";
export const hash = (data) => {
return crypto.createHash(HASH_ALGORITHM).update(data).digest("hex");
};
export const createJwk = async (privateKey) => {
const jwk = await jose.JWK.asKey(Buffer.from(privateKey, 'base64'), PRIVATE_KEY_HASH_ALGORITHM, { alg: SIGNATURE_ALGORITHM });
return jwk;
};
export const sign = async (data, privateKey) => await jose.JWS.createSign({
alg: SIGNATURE_ALGORITHM,
format: "compact",
}, privateKey)
.update(JSON.stringify(data))
.final();
//# sourceMappingURL=crypto.js.map