【问题标题】:Unattended generation of an ECDSA key using gpg2使用 gpg2 无人值守生成 ECDSA 密钥
【发布时间】:2016-03-22 17:35:46
【问题描述】:

小问题

如何在gpg2 v2.1.11参数文件中指定椭圆曲线?

长问题

我已成功使用以下 bash 脚本使用 gpg2 v2.1.11 生成 RSA 密钥:

#!/bin/bash

PUBRING_FILE=$(mktemp /tmp/pub.XXXXXX)
CONFIG_FILE=$(mktemp /tmp/config.XXXXXX)

cat >$CONFIG_FILE <<EOF
    Key-Type: DSA
    Key-Length: 1024
    Subkey-Type: RSA
    Subkey-Length: 2048
    Name-Real: Name
    Name-Comment: Comment
    Name-Email: Email
    Expire-Date: 0
    Passphrase: abc
    %pubring $PUBRING_FILE
EOF

gpg2 --quiet --batch --expert --full-gen-key $CONFIG_FILE

我想使用相同的脚本来生成 ECDSA 密钥。但是,当我替换

Subkey-Type: RSA
Subkey-Length: 2048

Subkey-Type: ECDSA
Subkey-Length: 256

我收到以下错误

gpg:密钥生成失败:未知椭圆曲线

我的配置文件明显省略了曲线,但我怎样才能包含它呢?即,如何在gpg2 v2.1.11参数文件中指定椭圆曲线?

【问题讨论】:

  • 请提供您正在使用的完整版 GnuPG。
  • 对不起,这是含蓄的。我正在使用 v2.1.11。

标签: bash cryptography gnupg elliptic-curve ecdsa


【解决方案1】:

gpg2 不知道您要使用哪条 EC 曲线。要解决此问题,您需要使用 Key-Curve 选项。在您的示例中,您应该删除 Subkey-Length: 2048 行并添加一个新的 Subkey-Curve: [...] 选项。

使用 NIST P-256 曲线的示例:

cat >$CONFIG_FILE <<EOF
    Key-Type: DSA
    Key-Length: 1024
    Subkey-Type: ECDSA
    Subkey-Curve: nistp256
    Name-Real: Name
    Name-Comment: Comment
    Name-Email: Email
    Expire-Date: 0
    Passphrase: abc
    %pubring $PUBRING_FILE
EOF

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 2017-03-02
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2015-09-17
    相关资源
    最近更新 更多