web-dev-qa-db-fra.com

Génération de clés GnuPG sans surveillance pour ECC

J'essaie de créer un PGP ECC sans surveillance dans un script bash. Cela ressemble à ceci:

cat >ecc <<EOF
Key-Type: ECC
Key-Length: 521
Subkey-Type: ECC
Subkey-Length: 521
Name-Real: Test
Passphrase: secret
Expire-Date: 0
%pubring gpg.pub
%secring gpg.sec
%commit
EOF
gpg --batch --yes --no-tty --gen-key ecc

Cela fonctionne assez bien pour les clés RSA, mais pour l'exemple ci-dessus pour ECC, il est écrit:

gpg: key generation failed: Unknown elliptic curve

Comment puis-je spécifier la courbe elliptique à utiliser?

4
msrd0

Je suis un utilisateur de Fedora, mais écoutez-moi, fans d’Ubuntu. Je me débattais avec le même problème, alors voici ma solution qui fonctionne pour Fedora 25 avec GnuPG 2.1.13, et sûrement sous Ubuntu. C'est une modification de la réponse de Thomas. Définissez le type de clé et le type de clé comme suit (j'utilise nistp256, mais j'utilise la courbe prise en charge par votre système):

Type de clé: ECDSA
Key-Curve: nistp256
Longueur de clé: 256
Type de sous-clé: ECDH
Sous-clé-courbe: nistp256
Longueur de la sous-clé: 256

Si vous utilisez ECC en tant que type de clé et type de sous-clé, gpg générera des erreurs de ce type et la clé publique sera ECDH, et non pas ECDSA.

gpg: erreur de lecture du reste du paquet: argument invalide
gpg: erreur lors de la lecture du reste du paquet: argument invalide
gpg: impossible de coder un MD de 256 bits dans une trame de 72 bits, algo = 8
gpg: impossible de coder un MD de 256 bits dans une trame de 72 bits, algo = 8

Notez également que dans GnuPG version 2.1 et ultérieure, les options % pubring et % secring sont ignorés ( https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html ) donc ne les utilisez pas.

Et enfin, vérifiez ceci https://www.gnupg.org/faq/whats-new-in-2.1.html#ecc c'est une bonne lecture sur les courbes à utiliser. En fait, pour moi, la v2.1.13 ne répertorie que les éléments suivants, lors de la commande manuelle:

$ gpg2 --expert --full-gen-key
...
(3) NIST P-256
(4) NIST P-384
(5) NIST P-521
4
upteryx