这甚至可能吗?我有一个我已经用 GPG 制作的密钥对,但我找不到用那个密钥对其进行签名的方法。我真的不想用 keytool 或其他任何东西制作一个新密钥;我宁愿使用我现在拥有的密钥。有人知道我该怎么做吗?提前致谢。
3 回答
我非常怀疑 GPG 会生成 jarsigner 可以使用的密钥。可能可以编写一个转换器来执行此操作,但硬着头皮生成新密钥的工作要少得多。执行此操作的命令很简单
keytool -genkey -alias mynickname -validity 20000 -keystore ~/.android/my-keystore
(ps对密钥进行备份,并确保您不会忘记密钥库密码或密钥密码。关于将应用程序投放市场然后忘记或丢失密码的人的悲伤故事太多了.)
我也只想管理 OpenPGP 密钥。所以这是我的方式。
打开pgp2ssh
首先从monkeysphere安装它。
sudo apt install monkeysphere
注意:openpgp2ssh
仅当密钥不受密码保护和 RSA 密钥时才有效。因此,可能有必要删除保护。
现在,导出 PGP 密钥并将其交给 openpgp2ssh:
gpg --list-keys # show your keys with keyid.
gpg --export-secret-subkeys your@email | openpgp2ssh $SubKeyId > id_rsa
openssl rsa -in id_rsa -outform pem > key.pem
openssl req -new -key key.pem -out request.pem
openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt
您确实需要使用 jarsigner 签名。但是 jarsigner 实际上比你想象的要灵活一点。如果您已经有要使用的签名密钥,则可以将其从 gpg 导出并将其导入 java 密钥库,然后以这种方式签名。如果您想尝试这样做,您可以尝试 keytool 但获取Keytool Explorer要容易得多, 因为 keytool 有很多选项。
Jarsigner 实际上非常灵活。 本文档描述了您可以创建自己的提供程序的过程。我很惊讶还没有一个使用 GPG 密钥库的人。 有一种使用 Yubikey 的方法,这是我知道所有这些的唯一原因 - 我的签名密钥被安全地锁定在我的 yubikey 中,即使我无法获得它们(是的,我在某处有安全备份) .