it-swarm.com.de

Unbeaufsichtigte GnuPG-Schlüsselgenerierung für ECC

Ich versuche, ein ECC-PGP unbeaufsichtigt in einem Bash-Skript zu erstellen. Es sieht aus wie das:

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

Dies funktioniert für RSA-Schlüssel recht gut, aber für das obige Beispiel für ECC heißt es:

gpg: key generation failed: Unknown elliptic curve

Wie kann ich die zu verwendende elliptische Kurve angeben?

4
msrd0

Ich bin ein Fedora-Benutzer, höre mir aber Ubuntu-Fans an. Ich hatte mit dem gleichen Problem zu kämpfen, daher hier meine Lösung, die für Fedora 25 mit GnuPG 2.1.13 und sicherlich unter Ubuntu funktioniert. Es ist eine Modifikation der Antwort von Thomas. Stellen Sie den Schlüsseltyp und den Unterschlüsseltyp wie folgt ein (ich verwende nistp256, verwende aber die von Ihrem System unterstützte Kurve):

Schlüsseltyp: ECDSA
Key-Curve: nistp256
Schlüssellänge: 256
Unterschlüsseltyp: ECDH
Unterschlüssel-Kurve: nistp256
Unterschlüssellänge: 256

Wenn Sie ECC als Schlüsseltyp und Unterschlüsseltyp verwenden, erzeugt gpg solche Fehler, und der öffentliche Schlüssel ist ECDH, nicht ECDSA.

gpg: Fehler beim Lesen des restlichen Pakets: Ungültiges Argument
gpg: Fehler beim Lesen des restlichen Pakets: Ungültiges Argument
gpg: Eine 256-Bit-MD kann nicht in einen 72-Bit-Frame codiert werden, algo = 8
gpg: Eine 256-Bit-MD kann nicht in einen 72-Bit-Frame codiert werden, algo = 8

Beachten Sie auch, dass in GnuPG v2.1 und höher die Optionen % pubring und % secring werden ignoriert ( https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html ), verwenden Sie sie also nicht.

Und schliesslich lesen Sie dies https://www.gnupg.org/faq/whats-new-in-2.1.html#ecc es ist eine gute Lektüre darüber, welche Kurven verwendet werden sollen. Tatsächlich listet v2.1.13 für mich während des manuellen Befehls nur Folgendes auf:

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