Skip to content

Commit cd68bdb

Browse files
committed
fix (?) pss sign encode/decode
1 parent a5578a2 commit cd68bdb

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/schemes/pss.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ module.exports.makeScheme = function (key, options) {
101101
maskedDB[i] = DB[i] ^ dbMask[i];
102102
}
103103

104-
var bits = emBits - 8 * (emLen - 1);
105-
var mask = 255 << 8 - bits >> 8 - bits;
106-
maskedDB[0] &= ((maskedDB[0] ^ mask) & maskedDB[0]);
104+
var bits = 8 * emLen - emBits;
105+
var mask = 255 ^ (255 >> 8 - bits << 8 - bits);
106+
maskedDB[0] = maskedDB[0] & mask;
107107

108108
var EM = new Buffer(maskedDB.length + H.length + 1);
109109
maskedDB.copy(EM, 0);
@@ -153,13 +153,19 @@ module.exports.makeScheme = function (key, options) {
153153
DB[i] ^= dbMask[i];
154154
}
155155

156-
mask = 0;
157-
for (i = 0, bits = emBits - 8 * (emLen - 1); i < bits; i++) {
156+
/* mask = 0;
157+
var bits = emBits - 8 * (emLen - 1);
158+
for (i = 0; i < bits; i++) {
158159
mask |= 1 << i;
159160
}
160-
DB[0] &= mask;
161+
DB[0] &= mask;*/
162+
163+
var bits = 8 * emLen - emBits;
164+
var mask = 255 ^ (255 >> 8 - bits << 8 - bits);
165+
DB[0] = DB[0] & mask;
161166

162167
// Filter out padding
168+
i = 0;
163169
while (DB[i++] === 0 && i < DB.length);
164170
if (DB[i - 1] != 1) {
165171
return false;

0 commit comments

Comments
 (0)