如何使用GPG制作的私钥对apk进行签名?

问题描述 投票:6回答:3

这甚至可能吗?我有一个我已经用GPG制作的密钥对,但我找不到用这个密钥签名的方法。我真的不想用keytool或者其他任何东西制作新的密钥;我宁愿使用我现在拥有的钥匙。谁知道我怎么能这样做?提前致谢。

android gnupg jarsigner
3个回答
2
投票

我非常怀疑GPG会生成可供jarsigner使用的密钥。有可能编写一个转换器来完成这项工作,但只需咬住子弹并生成新密钥就不那么容易了。执行此操作的命令很简单

keytool -genkey -alias mynickname -validity 20000 -keystore ~/.android/my-keystore

(ps备份密钥,并确保你不要忘记密钥库密码或密钥密码。有太多悲伤的故事,人们把应用程序推向市场,然后忘记或丢失密码。)


1
投票

我只是想管理OpenPGP密钥。所以这是我的方式。

openpgp2ssh

首先从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

0
投票

你需要与jarsigner签约。但是,jarsigner实际上比你想象的更灵活。如果您已经有一个想要使用的签名密钥,那么您可以将其导出gpg并将其导入到Java密钥库中,然后以这种方式签名。如果你想尝试这样做,你可以尝试使用keytool,但是获得Keytool Explorer要容易得多,因为keytool有很多选择。

Jarsigner实际上非常灵活。 This Document描述了一个创建自己的提供者的过程。我很惊讶还没有一个人已经使用过GPG密钥库。 There is a way to do it with a Yubikey这是我了解所有这一切的唯一原因 - 我的签名密钥被安全锁定在我的yubikey中,即使我无法得到它们(是的,我在某处有安全备份)。

© www.soinside.com 2019 - 2024. All rights reserved.