Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
emeDecode(iEM, P, emLen) {
var EM = new Uint8Array(iEM.toChunk(emLen));
var H = this.H;
var hLen = H.outputSize;
var maskedSeed = EM.slice(0, hLen);
var maskedDB = EM.slice(hLen);
var seedMask = Crypt.PKCS1.MGF(maskedDB, hLen);
this.xor(maskedSeed, seedMask);
var dbMask = this.MGF(maskedSeed, emLen - hLen);
this.xor(maskedDB, dbMask);
var DB = maskedDB;
var pHash = H.process(P);
// check to see if the pHash equals the first hLen of DB
if (this.ncomp(pHash, DB, hLen) != 0) {
throw new Error("malformed input");
}
var c, i;
for (i = hLen; i < DB.length && (c = DB[i]) == 0x00; i++)
;
if (c != 0x01) {
throw new Error("malformed input");
}
return DB.slice(i+1);
verify(H, sig) {
// "20" is specified in the xmldsig-core spec.
var r = Crypt.PKCS1.OS2IP(sig.slice(0, 20));
var s = Crypt.PKCS1.OS2IP(sig.slice(20, 40));
return(this._verify(H, r, s));
};
};
verify(H, sig) {
// "20" is specified in the xmldsig-core spec.
var r = Crypt.PKCS1.OS2IP(sig.slice(0, 20));
var s = Crypt.PKCS1.OS2IP(sig.slice(20, 40));
return(this._verify(H, r, s));
};
};
sign(H) {
var sig = this._sign(H);
var os = new ArrayBuffer();
var l = this.orderSize;
return os.concat(Crypt.PKCS1.I2OSP(sig.r, l), Crypt.PKCS1.I2OSP(sig.s, l));
};
_verify(H, r, s) {
sign(H) {
var sig = this._sign(H);
var os = new ArrayBuffer();
return os.concat(Crypt.PKCS1.I2OSP(sig.r, 20), Crypt.PKCS1.I2OSP(sig.s, 20));
};
_verify(H, r, s) {
sign(H) {
var sig = this._sign(H);
var os = new ArrayBuffer();
return os.concat(Crypt.PKCS1.I2OSP(sig.r, 20), Crypt.PKCS1.I2OSP(sig.s, 20));
};
_verify(H, r, s) {
verify(H, sig) {
var v = this.rsa.process(Crypt.PKCS1.OS2IP(sig));
var R = this.emsaDecode(v);
return !!R && Bin.comp(H, R) == 0;
};
encrypt(M) {