Gerando uma chave pgp a partir de uma chave privada / material inicial

0

Algumas bibliotecas me permitem gerar um par de chaves pgp de uma maneira:

var options = {
    curve: 'secp256k1',
    userId: 'Hamlet <[email protected]>',
    passphrase: 'To be, or not to be: that is the question',
    material: {
      key: privateKey,
      subkey: privateKey
    }
};

openpgp.generateKeyPair(options).then(function(keypair) {
    // success
    var privkey = keypair.privateKeyArmored;
    var pubkey = keypair.publicKeyArmored;
    //.........

Ou seja, dado algum privateKey / material inicial além de user_id / passphrase, ele gera ou talvez se converte em uma chave pgp.

Eu me pergunto, existe uma maneira de fazer as mesmas coisas com o utilitário gpg padrão que vem com o Linux? Eu sei que ele aceita userId e passphrase como argumentos, mas aceita como argumento algo que corresponde à chave privada "material" nessa biblioteca?

Ou pode haver uma maneira que inclua mais etapas para alcançar o mesmo resultado de gerar o par de chaves Openpg?

    
por Oari 21.10.2017 / 05:27

1 resposta

0

Sim.

O GNUPG pode usar uma chave existente. Você precisa ativar a opção "expert" para revelar o item de menu, se você estiver usando a interface interativa. Se você estiver usando o GNUPG 2.2.1, você verá algo como isto:

$gpg --expert --full-gen-key

gpg (GnuPG) 2.2.1; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)
   (9) ECC and ECC
  (10) ECC (sign only)
  (11) ECC (set your own capabilities)
  (13) Existing key
Your selection? 

Escolha a opção 13 para usar o material de chave PGP existente. Você precisará saber o keygrip da chave inicial. Para chaves PGP existentes que funcionam com GPG:

$gpg --with-keygrip --list-secret-keys [keyid]

Pelo que eu entendi, este é um novo recurso, então todos os bugs podem não estar resolvidos ainda ... e provavelmente por que ele está oculto no menu "expert". Alguns testes simples mostram que ele parece funcionar bem com chaves RSA, mas quebra com as teclas Curve 25519.

    
por 23.10.2017 / 02:35