Comparing version 0.3.3 to 0.3.4
{ | ||
"name": "node-rsa", | ||
"version": "0.3.3", | ||
"version": "0.3.4", | ||
"description": "Node.js RSA library", | ||
@@ -5,0 +5,0 @@ "main": "src/NodeRSA.js", |
@@ -239,3 +239,3 @@ # Node-RSA | ||
## Changelog | ||
### 0.3.3 | ||
@@ -242,0 +242,0 @@ * Fixed PSS encode/verify methods with max salt length. |
@@ -21,2 +21,3 @@ /** | ||
* @param key | ||
* @param options | ||
* options [Object] An object that contains the following keys that specify certain options for encoding. | ||
@@ -35,5 +36,7 @@ * └>signingSchemeOptions | ||
Scheme.prototype.sign = function (buffer) { | ||
var encoded = this.emsa_pss_encode(buffer, this.key.keySize - 1); | ||
var res = this.key.$doPrivate(new BigInteger(encoded)).toBuffer(this.key.encryptedDataLength); | ||
return res; | ||
var mHash = crypt.createHash(this.options.signingSchemeOptions.hash || DEFAULT_HASH_FUNCTION); | ||
mHash.update(buffer); | ||
var encoded = this.emsa_pss_encode(mHash.digest(), this.key.keySize - 1); | ||
return this.key.$doPrivate(new BigInteger(encoded)).toBuffer(this.key.encryptedDataLength); | ||
}; | ||
@@ -50,3 +53,6 @@ | ||
return this.emsa_pss_verify(buffer, m, this.key.keySize - 1); | ||
var mHash = crypt.createHash(this.options.signingSchemeOptions.hash || DEFAULT_HASH_FUNCTION); | ||
mHash.update(buffer); | ||
return this.emsa_pss_verify(mHash.digest(), m, this.key.keySize - 1); | ||
}; | ||
@@ -57,7 +63,7 @@ | ||
* | ||
* M [Buffer] Message to encode | ||
* mHash [Buffer] Hashed message to encode | ||
* emBits [uint] Maximum length of output in bits. Must be at least 8hLen + 8sLen + 9 (hLen = Hash digest length in bytes | sLen = length of salt in bytes) | ||
* @returns {Buffer} The encoded message | ||
*/ | ||
Scheme.prototype.emsa_pss_encode = function (M, emBits) { | ||
Scheme.prototype.emsa_pss_encode = function (mHash, emBits) { | ||
var hash = this.options.signingSchemeOptions.hash || DEFAULT_HASH_FUNCTION; | ||
@@ -77,6 +83,2 @@ var mgf = this.options.signingSchemeOptions.mgf || OAEP.eme_oaep_mgf1; | ||
var mHash = crypt.createHash(hash); | ||
mHash.update(M); | ||
mHash = mHash.digest(); | ||
var salt = crypt.randomBytes(sLen); | ||
@@ -124,3 +126,3 @@ | ||
* | ||
* M [Buffer] Message | ||
* mHash [Buffer] Hashed message | ||
* EM [Buffer] Signature | ||
@@ -130,3 +132,3 @@ * emBits [uint] Length of EM in bits. Must be at least 8hLen + 8sLen + 9 to be a valid signature. (hLen = Hash digest length in bytes | sLen = length of salt in bytes) | ||
*/ | ||
Scheme.prototype.emsa_pss_verify = function (M, EM, emBits) { | ||
Scheme.prototype.emsa_pss_verify = function (mHash, EM, emBits) { | ||
var hash = this.options.signingSchemeOptions.hash || DEFAULT_HASH_FUNCTION; | ||
@@ -163,11 +165,4 @@ var mgf = this.options.signingSchemeOptions.mgf || OAEP.eme_oaep_mgf1; | ||
/* mask = 0; | ||
var bits = emBits - 8 * (emLen - 1); | ||
for (i = 0; i < bits; i++) { | ||
mask |= 1 << i; | ||
} | ||
DB[0] &= mask;*/ | ||
var bits = 8 * emLen - emBits; | ||
var mask = 255 ^ (255 >> 8 - bits << 8 - bits); | ||
bits = 8 * emLen - emBits; | ||
mask = 255 ^ (255 >> 8 - bits << 8 - bits); | ||
DB[0] = DB[0] & mask; | ||
@@ -183,6 +178,2 @@ | ||
var mHash = crypt.createHash(hash); | ||
mHash.update(M); | ||
mHash = mHash.digest(); | ||
var Mapostrophe = new Buffer(8 + hLen + sLen); | ||
@@ -201,2 +192,2 @@ Mapostrophe.fill(0, 0, 8); | ||
return new Scheme(key, options); | ||
}; | ||
}; |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
190486
0
3189