Skip to content

Instantly share code, notes, and snippets.

@zapu
Created November 4, 2016 21:04
Show Gist options
  • Save zapu/4ab619d906ade91fdedea7f4bc518253 to your computer and use it in GitHub Desktop.
Save zapu/4ab619d906ade91fdedea7f4bc518253 to your computer and use it in GitHub Desktop.
kbpgp = require 'kbpgp'
{exec, spawnSync} = require('child_process')
###
gpg_gen_cv25519.txt is:
%echo Generating cv25519
Key-Type: eddsa
Key-Curve: Ed25519
Key-Usage: sign
Subkey-Type: ecdh
Subkey-Curve: Curve25519
Subkey-Usage: encrypt
Expire-Date: 0
Name-Real: Testt
%no-protection
%commit
%echo done
###
await exec "gpg2 --batch --gen-key gpg_gen_cv25519.txt", defer err
await exec 'gpg2 -K | grep -B 1 Testt | sed -n -e "1{p;q}"', defer err, key_id
console.log 'key is', key_id
await exec "gpg2 --export-secret-key --armor #{key_id}", defer err, stdout, stderr
console.log stdout, stderr
priv_key = stdout
await kbpgp.KeyManager.import_from_armored_pgp {
armored: priv_key
}, defer err, bob
#console.log err, bob
console.log 'eddsa key:',bob.primary.key.priv.key
console.log 'cv25519 x:',bob.subkeys[0].key.priv.x
await kbpgp.burn { msg: "Hello GPG2 how you doing?", encrypt_for: bob, sign_with: bob }, defer err, aout, raw
console.log err
console.log aout
console.log 'Spawning gpg2 to decrypt'
{stdout, stderr} = spawnSync 'gpg2', ['-v'], { input: aout }
console.log stderr.toString()
console.log stdout.toString()
console.log 'Done'
await kbpgp.unbox { armored: aout, keyfetch: bob }, defer err, plain
console.log err
console.log plain
console.log plain.toString()
await exec "gpg2 --batch --yes --delete-secret-keys #{key_id}", defer err
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment