subtle
Version:
crypto.subtle for node.js
38 lines (28 loc) • 1.05 kB
JavaScript
var Algorithm = require("./abstract")("RSA-OAEP")
, RSA = require("./shared/RSA")
, forge = require("node-forge")
, types = Algorithm.types
, public = types.public.usage
, private = types.private.usage;
//attached shared RSA
RSA(Algorithm);
Algorithm.checkParams = checkParams;
public.encrypt = createEncrypt;
private.decrypt = createDecrypt;
module.exports = Algorithm;
function createEncrypt(Key){
return function RSA_OAEP_ENCRYPT(alg,buf){
return new Buffer(Key.publicKey.encrypt(buf.toString("binary"), "RSA-OAEP"),"binary");
};
}
function createDecrypt(Key){
return function RSA_OAEP_DECRYPT(alg,buf){
return new Buffer(Key.privateKey.decrypt(buf.toString("binary"), "RSA-OAEP"),"binary");
};
}
function checkParams(format, algorithm, usages){
//if (!(algorithm.hash && (algorithm.hash.name === "SHA-256")))
//throw new Error("Unsupported or missing hash name");
//if (!Buffer.isBuffer(algorithm.publicExponent))
//throw new Error("algorithm.publicExponent not a Buffer source");
}