import assert = require('assert'); import pgp = require('openpgp'); import crypto = require('crypto'); import { Syncable, ArgPair } from '../src/sync'; import { MockKeyStore, MockSignable } from './mock'; import { PGPSigner } from '../src/auth'; describe('auth', async () => { await it('digest', async () => { const opts = { userIds: [ { name: 'John Marston', email: 'red@dead.com', }, ], numBits: 2048, passphrase: 'foo', }; const pkgen = await pgp.generateKey(opts); const pka = pkgen.privateKeyArmored; const pks = await pgp.key.readArmored(pka); await pks.keys[0].decrypt('foo'); const pubka = pkgen.publicKeyArmored; const pubks = await pgp.key.readArmored(pubka); const keyStore = new MockKeyStore(pks.keys[0], pubks.keys); const s = new PGPSigner(keyStore); const message = await pgp.cleartext.fromText('foo'); s.onverify = (ok) => { assert(ok); } s.onsign = (signature) => { s.onverify((v) => { console.log('bar', v); }); s.verify('foo', signature); } await s.sign('foo'); }); });