Skip to content

Commit 2835ca5

Browse files
committed
tests refactoring (wip)
1 parent 7c3c3b5 commit 2835ca5

File tree

2 files changed

+127
-145
lines changed

2 files changed

+127
-145
lines changed

src/NodeRSA.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,14 @@ module.exports = (function() {
175175
*
176176
* @param buffer - signed data
177177
* @param signature
178+
* @param source_encoding {string} - optional. Encoding for given string. Default utf8.
178179
* @param signature_encoding - optional. Encoding of given signature. May be 'buffer', 'binary', 'hex' or 'base64'. Default 'buffer'.
179180
* @returns {*}
180181
*/
181-
NodeRSA.prototype.verify = function(buffer, signature, signature_encoding) {
182+
NodeRSA.prototype.verify = function(buffer, signature, source_encoding, signature_encoding) {
182183
signature_encoding = (!signature_encoding || signature_encoding == 'buffer' ? null : signature_encoding)
183184
var verifier = crypt.createVerify('RSA-SHA256');
184-
verifier.update(buffer);
185+
verifier.update(this.$getDataForEcrypt(buffer, source_encoding));
185186
return verifier.verify(this.getPublicPEM(), signature, signature_encoding);
186187
}
187188

test/tests.js

Lines changed: 124 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -2,191 +2,172 @@
22
* TODO: tests for compatibility with other rsa libraries
33
*/
44

5-
var assert = require('chai').assert;
6-
var _ = require('lodash');
7-
var NodeRSA = require('../src/NodeRSA');
5+
var assert = require("chai").assert;
6+
var _ = require("lodash");
7+
var NodeRSA = require("../src/NodeRSA");
8+
9+
describe("NodeRSA", function(){
10+
var keySizes = [
11+
{b: 512, e: 3},
12+
{b: 512, e: 5},
13+
{b: 512, e: 257},
14+
{b: 512, e: 65537},
15+
{b: 768}, // 'e' should be 65537
16+
{b: 1024} // 'e' should be 65537
17+
];
818

9-
describe('NodeRSA', function(){
10-
var nodeRSA = null;
19+
var dataBundle = {
20+
"string": {
21+
data: "ascii + юникод スラ ⑨",
22+
encoding: "utf8"
23+
},
24+
"empty string": {
25+
data: "",
26+
encoding: ["utf8", "ascii", "hex", "base64"]
27+
},
28+
"long string": {
29+
data: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
30+
encoding: ["utf8", "ascii"]
31+
},
32+
"buffer": {
33+
data: new Buffer("ascii + юникод スラ ⑨"),
34+
encoding: "buffer"
35+
},
36+
"json object": {
37+
data: {str: "string", arr: ["a","r","r", "a", "y", true, "⑨"], int: 42, nested: {key: {key: 1}}},
38+
encoding: "json"
39+
},
40+
"json array": {
41+
data: [1,2,3,4,5,6,7,8,9,[10,11,12,[13],14,15,[16,17,[18]]]],
42+
encoding: "json"
43+
}
44+
};
45+
46+
var generatedKeys = [];
1147
var privateNodeRSA = null;
1248
var publicNodeRSA = null;
1349

14-
var dataBundle = {
15-
"string": "ascii + юникод スラ ⑨",
16-
"empty string": "",
17-
"long string": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
18-
"buffer": new Buffer("ascii + юникод スラ ⑨"),
19-
"json object": {str: "string", arr: ["a","r","r", "a", "y", true, '⑨'], int: 42, nested: {key: {key: 1}}},
20-
"json array": [1,2,3,4,5,6,7,8,9,[10,11,12,[13],14,15,[16,17,[18]]]]
21-
};
50+
describe("Work with keys", function(){
2251

23-
describe('Work with keys', function(){
24-
it('.generateKeyPair() should make key pair', function(){
25-
nodeRSA = new NodeRSA({b: 512});
26-
assert.instanceOf(nodeRSA.keyPair, Object);
52+
describe("Generating keys", function() {
53+
for (var i in keySizes) {
54+
it("should make key pair " + keySizes[i].b + "-bit length and public exponent is " + (keySizes[i].e || 65537), function () {
55+
generatedKeys.push(new NodeRSA({b: keySizes[i].b, e: keySizes[i].e}));
56+
assert.instanceOf(generatedKeys[generatedKeys.length - 1].keyPair, Object);
57+
});
58+
}
2759
});
2860

29-
describe('PEM', function(){
30-
var privateKeyPEM = '-----BEGIN RSA PRIVATE KEY-----\n'+
31-
'MIIFwgIBAAKCAUEAsE1edyfToZRv6cFOkB0tAJ5qJor4YF5CccJAL0fS/o1Yk10V\n'+
32-
'SXH4Xx4peSJgYQKkO0HqO1hAz6k9dFQB4U1CnWtRjtNEcIfycqrZrhu6you5syb6\n'+
33-
'ScV3Zu/9bm7/DyaLlx/gJhUPR1OxOzaqsEvlu7hbDhNLIYo1zKFb/aUBbD6+UcaG\n'+
34-
'xH2BfFNdzVAtVSVpc/s2Y3sboMN7rByUj7937iQlaMINvVjyasynYuzHNw6ZRP9J\n'+
35-
'P9fwxrCyaxnTPWxVl0qvVaQO2+TtFMtDXH2OVZtWWeLHAL8cildw0G+u2qVqTqIG\n'+
36-
'EwNyJlsAHykaPFAMW0xLueumrSlB+JUJPrRvvw4nBCd4GOrNSlPCE/xlk1Cb8JaI\n'+
37-
'CTLvDUcYc3ZqL3jqAueBhkpw2uCz8xVJeOA1KY4kQIIx8JEBsAYzgyP2iy0CAwEA\n'+
38-
'AQKCAUAjBcudShkdgRpWSmNr94/IDrAxpeu/YRo79QXBHriIftW4uIYRCAX6B0jf\n'+
39-
'2ndg7iBn8Skxzs9ZMVqW8FVLR4jTMs2J3Og8npUIOG5zyuhpciZas4SHASY+GbCz\n'+
40-
'rnMWtGaIh/mENyzI05RimfKAgSNLDk1wV17Wc9lKJEfc9Fl7Al/WaOS+xdviMcFx\n'+
41-
'ltrajksLkjz0uDD917eKskbE45lULfGqeI0kYDadWp88pw6ikXJln2p3Y1PNQF3e\n'+
42-
'y2cN+Snzd0jx/c5fD9B1zxKYv5bUo+UnTzBxV81e9xCJfkdXv+6D5qDn1gGLdZZa\n'+
43-
'5FxtZbRgVh/ZlqP9xYr72as/WFmIA20wRgHPgWvLyHsh0XThqZf2/O3R8KmFv8aT\n'+
44-
'+kmc5is6sVItIIi7ltorVapTkJai3zz/VSMBBaL+ytFN9jVl4QKBoQDfL8TMeZXu\n'+
45-
'gBTN7yq6zZWN8+60MUaxz0/lKdzmo35z32rpVKdsYd922pmcsNYaoj/H9L3j/NP4\n'+
46-
'9z+SHfYpWvTa7AvJfNlXYc3BRXIarpfnXsm65IzKzHaF9i2xdXxkfTEYIvOQDMLF\n'+
47-
'SiiObWJMV+QqUxb3luu3/CR3IcbgeTOpdiC/T/Zl/YYl17JqZTHmLFZPq7xewttg\n'+
48-
'zQorDRWIFDtlAoGhAMo4+uM9f4BpOHSmayhLhHArIGs4386BkXSeOLeQitaQJ/2c\n'+
49-
'zb459O87XoCAonZbq+dI7XRnBU3toQvEsZgrtGkOFXCZJMWAQxD5BQ5vEYT6c86h\n'+
50-
'uGpX6h3ODlJ6UGi+5CWyMQ1cFlBkfffFAarjSYTVlyj736sOeDuJWX133z5VQBQ8\n'+
51-
'1xSH23kNF95vxB4I1fXG8WL11YZU7VEwSLC4aCkCgaAKRj+wDhTZ4umSRWVZLiep\n'+
52-
'XkZp4y7W9q095nx13abvnKRmU3BVq/fGl++kZ/ujRD7dbKXlPflgJ7m0d06ivr4w\n'+
53-
'6dbtEqNKw4TeVd0X31u82f89bFIS7/Cw4BFgbwEn+x9sdgdyZTP+MxjE3cI9s3oc\n'+
54-
'fLC8+ySk1qWzGkn2gX3gWkDNrdexAEfRrClZfokaiIX8qvJEBoJk5WuHadXI6u2F\n'+
55-
'AoGgByidOQ4kRVd0OCzr/jEuLwpXy3Pn+Fd93rL7LwRe5dmUkNXMMr+6e/2OCt6C\n'+
56-
'4c28+CMMxOIgvfF7kf8Uil6BtHZbK/E/6/3uYdtu4mPsKtjy4I25CYqzLvrsZt8N\n'+
57-
'maeoS+1S7zYjVBU6oFrJBFOndpxZDYpdEKEigHkMQfTMYliCPDUrJ/7nNhHQln8+\n'+
58-
'YhHOATVZtjcdp/O5svYSnK7qgQKBoDd3lFWrPatgxpF1JXMEFFbaIRdNxHkKA4YY\n'+
59-
'gMTM4MPgViunYX/yJ7SaX8jWnC231A9uVn4+kb+DvKjc+ZuTQvnIUK2u6LvIinVF\n'+
60-
'snDEA+BbXwehAtwdHDMDtqYFdx4hvCWQwBNn4p3J0OO2tbYVMtvM5aOEfRSYagfm\n'+
61-
'RywhDUAjW8U0RBnzlmXhQQ6B9bjqooS2MsRrJrS5CU682fb3hBo=\n'+
62-
'-----END RSA PRIVATE KEY-----';
63-
64-
var publicKeyPEM = '-----BEGIN PUBLIC KEY-----\n'+
65-
'MIIBYjANBgkqhkiG9w0BAQEFAAOCAU8AMIIBSgKCAUEAsE1edyfToZRv6cFOkB0t\n'+
66-
'AJ5qJor4YF5CccJAL0fS/o1Yk10VSXH4Xx4peSJgYQKkO0HqO1hAz6k9dFQB4U1C\n'+
67-
'nWtRjtNEcIfycqrZrhu6you5syb6ScV3Zu/9bm7/DyaLlx/gJhUPR1OxOzaqsEvl\n'+
68-
'u7hbDhNLIYo1zKFb/aUBbD6+UcaGxH2BfFNdzVAtVSVpc/s2Y3sboMN7rByUj793\n'+
69-
'7iQlaMINvVjyasynYuzHNw6ZRP9JP9fwxrCyaxnTPWxVl0qvVaQO2+TtFMtDXH2O\n'+
70-
'VZtWWeLHAL8cildw0G+u2qVqTqIGEwNyJlsAHykaPFAMW0xLueumrSlB+JUJPrRv\n'+
71-
'vw4nBCd4GOrNSlPCE/xlk1Cb8JaICTLvDUcYc3ZqL3jqAueBhkpw2uCz8xVJeOA1\n'+
72-
'KY4kQIIx8JEBsAYzgyP2iy0CAwEAAQ==\n'+
73-
'-----END PUBLIC KEY-----';
74-
75-
it('.loadFromPrivatePEM() should load private key from PEM string', function(){
61+
describe("PEM", function(){
62+
var privateKeyPEM = "-----BEGIN RSA PRIVATE KEY-----\n"+
63+
"MIIFwgIBAAKCAUEAsE1edyfToZRv6cFOkB0tAJ5qJor4YF5CccJAL0fS/o1Yk10V\n"+
64+
"SXH4Xx4peSJgYQKkO0HqO1hAz6k9dFQB4U1CnWtRjtNEcIfycqrZrhu6you5syb6\n"+
65+
"ScV3Zu/9bm7/DyaLlx/gJhUPR1OxOzaqsEvlu7hbDhNLIYo1zKFb/aUBbD6+UcaG\n"+
66+
"xH2BfFNdzVAtVSVpc/s2Y3sboMN7rByUj7937iQlaMINvVjyasynYuzHNw6ZRP9J\n"+
67+
"P9fwxrCyaxnTPWxVl0qvVaQO2+TtFMtDXH2OVZtWWeLHAL8cildw0G+u2qVqTqIG\n"+
68+
"EwNyJlsAHykaPFAMW0xLueumrSlB+JUJPrRvvw4nBCd4GOrNSlPCE/xlk1Cb8JaI\n"+
69+
"CTLvDUcYc3ZqL3jqAueBhkpw2uCz8xVJeOA1KY4kQIIx8JEBsAYzgyP2iy0CAwEA\n"+
70+
"AQKCAUAjBcudShkdgRpWSmNr94/IDrAxpeu/YRo79QXBHriIftW4uIYRCAX6B0jf\n"+
71+
"2ndg7iBn8Skxzs9ZMVqW8FVLR4jTMs2J3Og8npUIOG5zyuhpciZas4SHASY+GbCz\n"+
72+
"rnMWtGaIh/mENyzI05RimfKAgSNLDk1wV17Wc9lKJEfc9Fl7Al/WaOS+xdviMcFx\n"+
73+
"ltrajksLkjz0uDD917eKskbE45lULfGqeI0kYDadWp88pw6ikXJln2p3Y1PNQF3e\n"+
74+
"y2cN+Snzd0jx/c5fD9B1zxKYv5bUo+UnTzBxV81e9xCJfkdXv+6D5qDn1gGLdZZa\n"+
75+
"5FxtZbRgVh/ZlqP9xYr72as/WFmIA20wRgHPgWvLyHsh0XThqZf2/O3R8KmFv8aT\n"+
76+
"+kmc5is6sVItIIi7ltorVapTkJai3zz/VSMBBaL+ytFN9jVl4QKBoQDfL8TMeZXu\n"+
77+
"gBTN7yq6zZWN8+60MUaxz0/lKdzmo35z32rpVKdsYd922pmcsNYaoj/H9L3j/NP4\n"+
78+
"9z+SHfYpWvTa7AvJfNlXYc3BRXIarpfnXsm65IzKzHaF9i2xdXxkfTEYIvOQDMLF\n"+
79+
"SiiObWJMV+QqUxb3luu3/CR3IcbgeTOpdiC/T/Zl/YYl17JqZTHmLFZPq7xewttg\n"+
80+
"zQorDRWIFDtlAoGhAMo4+uM9f4BpOHSmayhLhHArIGs4386BkXSeOLeQitaQJ/2c\n"+
81+
"zb459O87XoCAonZbq+dI7XRnBU3toQvEsZgrtGkOFXCZJMWAQxD5BQ5vEYT6c86h\n"+
82+
"uGpX6h3ODlJ6UGi+5CWyMQ1cFlBkfffFAarjSYTVlyj736sOeDuJWX133z5VQBQ8\n"+
83+
"1xSH23kNF95vxB4I1fXG8WL11YZU7VEwSLC4aCkCgaAKRj+wDhTZ4umSRWVZLiep\n"+
84+
"XkZp4y7W9q095nx13abvnKRmU3BVq/fGl++kZ/ujRD7dbKXlPflgJ7m0d06ivr4w\n"+
85+
"6dbtEqNKw4TeVd0X31u82f89bFIS7/Cw4BFgbwEn+x9sdgdyZTP+MxjE3cI9s3oc\n"+
86+
"fLC8+ySk1qWzGkn2gX3gWkDNrdexAEfRrClZfokaiIX8qvJEBoJk5WuHadXI6u2F\n"+
87+
"AoGgByidOQ4kRVd0OCzr/jEuLwpXy3Pn+Fd93rL7LwRe5dmUkNXMMr+6e/2OCt6C\n"+
88+
"4c28+CMMxOIgvfF7kf8Uil6BtHZbK/E/6/3uYdtu4mPsKtjy4I25CYqzLvrsZt8N\n"+
89+
"maeoS+1S7zYjVBU6oFrJBFOndpxZDYpdEKEigHkMQfTMYliCPDUrJ/7nNhHQln8+\n"+
90+
"YhHOATVZtjcdp/O5svYSnK7qgQKBoDd3lFWrPatgxpF1JXMEFFbaIRdNxHkKA4YY\n"+
91+
"gMTM4MPgViunYX/yJ7SaX8jWnC231A9uVn4+kb+DvKjc+ZuTQvnIUK2u6LvIinVF\n"+
92+
"snDEA+BbXwehAtwdHDMDtqYFdx4hvCWQwBNn4p3J0OO2tbYVMtvM5aOEfRSYagfm\n"+
93+
"RywhDUAjW8U0RBnzlmXhQQ6B9bjqooS2MsRrJrS5CU682fb3hBo=\n"+
94+
"-----END RSA PRIVATE KEY-----";
95+
96+
var publicKeyPEM = "-----BEGIN PUBLIC KEY-----\n"+
97+
"MIIBYjANBgkqhkiG9w0BAQEFAAOCAU8AMIIBSgKCAUEAsE1edyfToZRv6cFOkB0t\n"+
98+
"AJ5qJor4YF5CccJAL0fS/o1Yk10VSXH4Xx4peSJgYQKkO0HqO1hAz6k9dFQB4U1C\n"+
99+
"nWtRjtNEcIfycqrZrhu6you5syb6ScV3Zu/9bm7/DyaLlx/gJhUPR1OxOzaqsEvl\n"+
100+
"u7hbDhNLIYo1zKFb/aUBbD6+UcaGxH2BfFNdzVAtVSVpc/s2Y3sboMN7rByUj793\n"+
101+
"7iQlaMINvVjyasynYuzHNw6ZRP9JP9fwxrCyaxnTPWxVl0qvVaQO2+TtFMtDXH2O\n"+
102+
"VZtWWeLHAL8cildw0G+u2qVqTqIGEwNyJlsAHykaPFAMW0xLueumrSlB+JUJPrRv\n"+
103+
"vw4nBCd4GOrNSlPCE/xlk1Cb8JaICTLvDUcYc3ZqL3jqAueBhkpw2uCz8xVJeOA1\n"+
104+
"KY4kQIIx8JEBsAYzgyP2iy0CAwEAAQ==\n"+
105+
"-----END PUBLIC KEY-----";
106+
107+
it(".loadFromPrivatePEM() should load private key from PEM string", function(){
76108
privateNodeRSA = new NodeRSA(privateKeyPEM);
77109
assert.instanceOf(privateNodeRSA.keyPair, Object);
78110
assert(privateNodeRSA.isPrivate());
79111
assert(privateNodeRSA.isPublic());
80112
assert(!privateNodeRSA.isPublic(true));
81113
});
82114

83-
it('.loadFromPublicPEM() should load public key from PEM string', function(){
115+
it(".loadFromPublicPEM() should load public key from PEM string", function(){
84116
publicNodeRSA = new NodeRSA(publicKeyPEM);
85117
assert.instanceOf(privateNodeRSA.keyPair, Object);
86118
assert(publicNodeRSA.isPublic());
87119
assert(publicNodeRSA.isPublic(true));
88120
assert(!publicNodeRSA.isPrivate());
89121
});
90122

91-
it('.toPrivatePEM() should return private PEM string', function(){
123+
it(".toPrivatePEM() should return private PEM string", function(){
92124
assert.equal(privateNodeRSA.getPrivatePEM(), privateKeyPEM);
93125
});
94126

95-
it('.toPublicPEM() from public key should return public PEM string', function(){
127+
it(".toPublicPEM() from public key should return public PEM string", function(){
96128
assert.equal(publicNodeRSA.getPublicPEM(), publicKeyPEM);
97129
});
98130

99-
it('.toPublicPEM() from private key should return public PEM string', function(){
131+
it(".toPublicPEM() from private key should return public PEM string", function(){
100132
assert.equal(privateNodeRSA.getPublicPEM(), publicKeyPEM);
101133
});
102134
});
103135
});
104136

137+
describe("Encrypting & decrypting", function(){
138+
var encrypted = {};
139+
var decrypted = {};
105140

106-
var dataForEncrypt = "ascii + юникод スラ ⑨";
107-
var longDataForEncrypt = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
108-
var JSONForEncrypt = {str: "string", arr: ["a","r","r", "a", "y", true, '⑨'], int: 42, nested: {key: {key: 1}}}
109-
110-
var encrypted = null;
111-
var encryptedLong = null;
112-
var encryptedBuffer = null;
113-
var encryptedJSON = null;
114-
115-
var decrypted = null;
116-
var decryptedLong = null;
117-
var decryptedJSON = null;
118-
119-
describe('Encrypting', function(){
120-
it('.encrypt() should return Buffer object', function(){
121-
encryptedBuffer = nodeRSA.encrypt(dataForEncrypt, 'buffer');
122-
assert(Buffer.isBuffer(encryptedBuffer));
123-
});
124-
125-
it('.encrypt() should return base64 encrypted string', function(){
126-
encrypted = nodeRSA.encrypt(dataForEncrypt, 'base64');
127-
assert.isString(encrypted);
128-
assert.match(encrypted, /^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/);
129-
});
130-
131-
it('.encrypt() should return encrypted Buffer for long message', function(){
132-
encryptedLong = nodeRSA.encrypt(longDataForEncrypt, 'buffer');
133-
assert(Buffer.isBuffer(encryptedLong));
134-
});
135-
136-
it('.encrypt() for js object. Should return Buffer object', function(){
137-
encryptedJSON = nodeRSA.encrypt(JSONForEncrypt, 'buffer');
138-
assert(Buffer.isBuffer(encryptedJSON));
139-
});
140-
});
141-
142-
describe('Decrypting', function(){
143-
it('.decrypt() should return decrypted Buffer', function(){
144-
decrypted = nodeRSA.decrypt(encryptedBuffer);
145-
assert(Buffer.isBuffer(decrypted));
146-
});
147-
148-
it('.decrypt() should return decrypted string', function(){
149-
decrypted = nodeRSA.decrypt(new Buffer(encrypted, 'base64'), 'utf8');
150-
assert.isString(decrypted);
151-
});
152-
153-
it('.decrypt() should return decrypted string for long message', function(){
154-
decryptedLong = nodeRSA.decrypt(encryptedLong, 'utf8');
155-
assert.isString(decryptedLong);
156-
});
157-
158-
it('.decrypt() for js object. Should return decrypted js object', function(){
159-
decryptedJSON = nodeRSA.decrypt(encryptedJSON, 'json');
160-
assert.isObject(decryptedJSON);
161-
});
162-
163-
it('source and decrypted should be the same', function(){
164-
assert.equal(decrypted, dataForEncrypt);
165-
});
141+
for(var i in dataBundle) {
142+
var suit = dataBundle[i];
166143

167-
it('long source and decrypted should be the same', function(){
168-
assert.equal(decryptedLong, longDataForEncrypt);
169-
});
144+
it("should encrypt "+i, function(){
145+
encrypted[i] = generatedKeys[0].encrypt(suit.data);
146+
assert(Buffer.isBuffer(encrypted[i]));
147+
assert(encrypted[i].length > 0);
148+
});
170149

171-
it('source JSON and decrypted JSON should be the same', function(){
172-
assert(_.isEqual(decryptedJSON, JSONForEncrypt));
173-
});
150+
it("should decrypt "+i, function(){
151+
decrypted[i] = generatedKeys[0].decrypt(encrypted[i], _.isArray(suit.encoding) ? suit.encoding[0] : suit.encoding);
152+
assert(_.isEqual(suit.data, decrypted[i]));
153+
});
154+
}
174155
});
175156

176-
describe('Signing & verifying', function () {
177-
178-
157+
describe("Signing & verifying", function () {
179158
var signed = {};
180159

181160
for(var i in dataBundle) {
182-
var sign = dataBundle[i];
183-
var signature = null;
184-
185-
it('should sign '+i, function(){
186-
signature = nodeRSA.sign(sign, 'hex');
187-
console.log(signature)
161+
var suit = dataBundle[i];
162+
it("should sign "+i, function(){
163+
signed[i] = generatedKeys[0].sign(suit.data);
164+
assert(Buffer.isBuffer(signed[i]));
165+
assert(signed[i].length > 0);
188166
});
189167

168+
it("should verify "+i, function(){
169+
assert(generatedKeys[0].verify(suit.data, signed[i]));
170+
});
190171
}
191172
});
192173
});

0 commit comments

Comments
 (0)