OpenSSL не поддерживает OpenPGP, поэтому вы не можете использовать его для генерации ключей. В любом случае, GnuPG довольно прост в написании сценариев, используя --with-colons
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