diff options
Diffstat (limited to 'school/node_modules/node-forge/nodejs/test/asn1.js')
-rw-r--r-- | school/node_modules/node-forge/nodejs/test/asn1.js | 262 |
1 files changed, 262 insertions, 0 deletions
diff --git a/school/node_modules/node-forge/nodejs/test/asn1.js b/school/node_modules/node-forge/nodejs/test/asn1.js new file mode 100644 index 0000000..7d0880e --- /dev/null +++ b/school/node_modules/node-forge/nodejs/test/asn1.js @@ -0,0 +1,262 @@ +(function() { + +function Tests(ASSERT, ASN1, UTIL) { + describe('asn1', function() { + // TODO: add more ASN.1 coverage + + it('should convert an OID to DER', function() { + ASSERT.equal(ASN1.oidToDer('1.2.840.113549').toHex(), '2a864886f70d'); + }); + + it('should convert an OID from DER', function() { + var der = UTIL.hexToBytes('2a864886f70d'); + ASSERT.equal(ASN1.derToOid(der), '1.2.840.113549'); + }); + + it('should convert INTEGER 0 to DER', function() { + ASSERT.equal(ASN1.integerToDer(0).toHex(), '00'); + }); + + it('should convert INTEGER 1 to DER', function() { + ASSERT.equal(ASN1.integerToDer(1).toHex(), '01'); + }); + + it('should convert INTEGER 127 to DER', function() { + ASSERT.equal(ASN1.integerToDer(127).toHex(), '7f'); + }); + + it('should convert INTEGER 128 to DER', function() { + ASSERT.equal(ASN1.integerToDer(128).toHex(), '0080'); + }); + + it('should convert INTEGER 256 to DER', function() { + ASSERT.equal(ASN1.integerToDer(256).toHex(), '0100'); + }); + + it('should convert INTEGER -128 to DER', function() { + ASSERT.equal(ASN1.integerToDer(-128).toHex(), '80'); + }); + + it('should convert INTEGER -129 to DER', function() { + ASSERT.equal(ASN1.integerToDer(-129).toHex(), 'ff7f'); + }); + + it('should convert INTEGER 32768 to DER', function() { + ASSERT.equal(ASN1.integerToDer(32768).toHex(), '008000'); + }); + + it('should convert INTEGER -32768 to DER', function() { + ASSERT.equal(ASN1.integerToDer(-32768).toHex(), '8000'); + }); + + it('should convert INTEGER -32769 to DER', function() { + ASSERT.equal(ASN1.integerToDer(-32769).toHex(), 'ff7fff'); + }); + + it('should convert INTEGER 8388608 to DER', function() { + ASSERT.equal(ASN1.integerToDer(8388608).toHex(), '00800000'); + }); + + it('should convert INTEGER -8388608 to DER', function() { + ASSERT.equal(ASN1.integerToDer(-8388608).toHex(), '800000'); + }); + + it('should convert INTEGER -8388609 to DER', function() { + ASSERT.equal(ASN1.integerToDer(-8388609).toHex(), 'ff7fffff'); + }); + + it('should convert INTEGER 2147483647 to DER', function() { + ASSERT.equal(ASN1.integerToDer(2147483647).toHex(), '7fffffff'); + }); + + it('should convert INTEGER -2147483648 to DER', function() { + ASSERT.equal(ASN1.integerToDer(-2147483648).toHex(), '80000000'); + }); + + it('should convert INTEGER 0 from DER', function() { + var der = UTIL.hexToBytes('00'); + ASSERT.equal(ASN1.derToInteger(der), 0); + }); + + it('should convert INTEGER 1 from DER', function() { + var der = UTIL.hexToBytes('01'); + ASSERT.equal(ASN1.derToInteger(der), 1); + }); + + it('should convert INTEGER 127 from DER', function() { + var der = UTIL.hexToBytes('7f'); + ASSERT.equal(ASN1.derToInteger(der), 127); + }); + + it('should convert INTEGER 128 from DER', function() { + var der = UTIL.hexToBytes('0080'); + ASSERT.equal(ASN1.derToInteger(der), 128); + }); + + it('should convert INTEGER 256 from DER', function() { + var der = UTIL.hexToBytes('0100'); + ASSERT.equal(ASN1.derToInteger(der), 256); + }); + + it('should convert INTEGER -128 from DER', function() { + var der = UTIL.hexToBytes('80'); + ASSERT.equal(ASN1.derToInteger(der), -128); + }); + + it('should convert INTEGER -129 from DER', function() { + var der = UTIL.hexToBytes('ff7f'); + ASSERT.equal(ASN1.derToInteger(der), -129); + }); + + it('should convert INTEGER 32768 from DER', function() { + var der = UTIL.hexToBytes('008000'); + ASSERT.equal(ASN1.derToInteger(der), 32768); + }); + + it('should convert INTEGER -32768 from DER', function() { + var der = UTIL.hexToBytes('8000'); + ASSERT.equal(ASN1.derToInteger(der), -32768); + }); + + it('should convert INTEGER -32769 from DER', function() { + var der = UTIL.hexToBytes('ff7fff'); + ASSERT.equal(ASN1.derToInteger(der), -32769); + }); + + it('should convert INTEGER 8388608 from DER', function() { + var der = UTIL.hexToBytes('00800000'); + ASSERT.equal(ASN1.derToInteger(der), 8388608); + }); + + it('should convert INTEGER -8388608 from DER', function() { + var der = UTIL.hexToBytes('800000'); + ASSERT.equal(ASN1.derToInteger(der), -8388608); + }); + + it('should convert INTEGER -8388609 from DER', function() { + var der = UTIL.hexToBytes('ff7fffff'); + ASSERT.equal(ASN1.derToInteger(der), -8388609); + }); + + it('should convert INTEGER 2147483647 from DER', function() { + var der = UTIL.hexToBytes('7fffffff'); + ASSERT.equal(ASN1.derToInteger(der), 2147483647); + }); + + it('should convert INTEGER -2147483648 from DER', function() { + var der = UTIL.hexToBytes('80000000'); + ASSERT.equal(ASN1.derToInteger(der), -2147483648); + }); + + (function() { + var tests = [{ + in: '20110223123400', + out: 1298464440000 + }, { + in: '20110223123400.1', + out: 1298464440100 + }, { + in: '20110223123400.123', + out: 1298464440123 + }]; + for(var i = 0; i < tests.length; ++i) { + var test = tests[i]; + it('should convert local generalized time "' + test.in + '" to a Date', function() { + var d = ASN1.generalizedTimeToDate(test.in); + var localOffset = d.getTimezoneOffset() * 60000; + ASSERT.equal(d.getTime(), test.out + localOffset); + }); + } + })(); + + (function() { + var tests = [{ + in: '20110223123400Z', // Wed Feb 23 12:34:00.000 UTC 2011 + out: 1298464440000 + }, { + in: '20110223123400.1Z', // Wed Feb 23 12:34:00.100 UTC 2011 + out: 1298464440100 + }, { + in: '20110223123400.123Z', // Wed Feb 23 12:34:00.123 UTC 2011 + out: 1298464440123 + }, { + in: '20110223123400+0200', // Wed Feb 23 10:34:00.000 UTC 2011 + out: 1298457240000 + }, { + in: '20110223123400.1+0200', // Wed Feb 23 10:34:00.100 UTC 2011 + out: 1298457240100 + }, { + in: '20110223123400.123+0200', // Wed Feb 23 10:34:00.123 UTC 2011 + out: 1298457240123 + }, { + in: '20110223123400-0200', // Wed Feb 23 14:34:00.000 UTC 2011 + out: 1298471640000 + }, { + in: '20110223123400.1-0200', // Wed Feb 23 14:34:00.100 UTC 2011 + out: 1298471640100 + }, { + in: '20110223123400.123-0200', // Wed Feb 23 14:34:00.123 UTC 2011 + out: 1298471640123 + }]; + for(var i = 0; i < tests.length; ++i) { + var test = tests[i]; + it('should convert utc generalized time "' + test.in + '" to a Date', function() { + var d = ASN1.generalizedTimeToDate(test.in); + ASSERT.equal(d.getTime(), test.out); + }); + } + })(); + + (function() { + var tests = [{ + in: '1102231234Z', // Wed Feb 23 12:34:00 UTC 2011 + out: 1298464440000 + }, { + in: '1102231234+0200', // Wed Feb 23 10:34:00 UTC 2011 + out: 1298457240000 + }, { + in: '1102231234-0200', // Wed Feb 23 14:34:00 UTC 2011 + out: 1298471640000 + }, { + in: '110223123456Z', // Wed Feb 23 12:34:56 UTC 2011 + out: 1298464496000 + }, { + in: '110223123456+0200', // Wed Feb 23 10:34:56 UTC 2011 + out: 1298457296000 + }, { + in: '110223123456-0200', // Wed Feb 23 14:34:56 UTC 2011 + out: 1298471696000 + }]; + for(var i = 0; i < tests.length; ++i) { + var test = tests[i]; + it('should convert utc time "' + test.in + '" to a Date', function() { + var d = ASN1.utcTimeToDate(test.in); + ASSERT.equal(d.getTime(), test.out); + }); + } + })(); + }); +} + +// check for AMD +if(typeof define === 'function') { + define([ + 'forge/asn1', + 'forge/util' + ], function(ASN1, UTIL) { + Tests( + // Global provided by test harness + ASSERT, + ASN1(), + UTIL() + ); + }); +} else if(typeof module === 'object' && module.exports) { + // assume NodeJS + Tests( + require('assert'), + require('../../js/asn1')(), + require('../../js/util')()); +} + +})(); |