Jen*_*rat 16
OpenSSL 不支持 OpenPGP,因此您不能将其用于密钥生成。无论如何,GnuPG--with-colons
与--batch
. 对于大多数操作,使用 GPGME 是可行的方法,至少对于存在库以通过它与 GnuPG 接口而无需自己解析输出的高级编程语言。
脚本化的密钥生成也是可能的:您正在寻找无人值守的密钥生成,这很有可能。最后归结为在文件中存储关于如何生成密钥的描述,并运行gpg --batch --genkey [filename]
.
上面链接的文档包含以下有关无人值守密钥生成的示例:
$ cat >foo <<EOF
%echo Generating a basic OpenPGP key
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: Joe Tester
Name-Comment: with stupid passphrase
Name-Email: joe@foo.bar
Expire-Date: 0
Passphrase: abc
%pubring foo.pub
%secring foo.sec
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
$ gpg2 --batch --gen-key foo
[...]
$ gpg2 --no-default-keyring --secret-keyring ./foo.sec \
--keyring ./foo.pub --list-secret-keys
/home/wk/work/gnupg-stable/scratch/foo.sec
------------------------------------------
sec 1024D/915A878D 2000-03-09 Joe Tester (with stupid passphrase) <joe@foo.bar>
ssb 1024g/8F70E2C0 2000-03-09
Run Code Online (Sandbox Code Playgroud)