supercop.ts

cross-compiled javascript implementation of ed25519 based on supercop-ref10
git clone git://git.finwo.net/lib/supercop.ts
Log | Files | Refs | README | LICENSE

0003-key-generation.test.ts (910B)


      1 import tap = require('tap');
      2 import pbkdf2 = require('pbkdf2');
      3 import KeyPair from '../src/index';
      4 
      5 (async () => {
      6 
      7   const seed = pbkdf2.pbkdf2Sync('password', 'NaCl', 1, 32, 'sha512');
      8   const kp   = await KeyPair.create(seed);
      9 
     10   tap.ok(Buffer.isBuffer(kp.publicKey), 'Created keypair has buffer as publicKey');
     11   tap.ok(Buffer.isBuffer(kp.secretKey), 'Created keypair has buffer as secretKey');
     12 
     13   // Convince TSC the keys are buffers
     14   if (!kp.publicKey) throw new Error();
     15   if (!kp.secretKey) throw new Error();
     16 
     17   tap.ok(kp.publicKey.length == 32, 'Generated publicKey has length of 32 bytes');
     18   tap.ok(kp.secretKey.length == 64, 'Generated secretKey has length of 64 bytes');
     19 
     20   // Verify the same key is always generated from that one seed
     21   tap.ok(kp.publicKey.toString('hex') == 'e4dfe299f037f094e9951abb4552977705902b0c42a7153192e803449c70a729', 'Got expected publicKey from known salt');
     22 })();