当前位置: 首页 > 面试题库 >

如何选择Maven-gpg-plugin用于对工件进行签名的GnuPG密钥?

柯树
2023-03-14
问题内容

我正在使用maven-gpg-
plugin对Maven工件进行签名。这可以正常工作,但是我的GnuPG密钥环中有多个密钥,并且希望使用与GnuPG选择的密钥不同的密钥。

  1. 如果有多个密钥,GnuPG如何选择“默认”密钥?

  2. 是否可以指定要在maven-gpg-plugin配置中使用的密钥?似乎keyname不起作用(我假设它选择了钥匙圈,但没有选择特定的钥匙)。


问题答案:

如果有多个键,GPG如何选择“默认”键?

如果没有其他定义(例如,使用default-key选项),则GnuPG默认情况下会选择秘密密钥环中的第一个密钥。来自man gpg

--default-key name

    Use name as the default key to sign with. If this option is not used,
    the default key is the first key found in the secret keyring. Note 
    that -u or --local-user overrides this option.

是否可以指定要在maven-gpg-plugin配置中使用的密钥?似乎“密钥名”不起作用(我假设它选择了密钥环,但没有选择特定的密钥)。

如果您不想让GnuPG自动决定要使用哪个密钥,请<keyname>[keyname]</keyname>选择要使用的密钥。我希望这是作为local- key选项传递的,因此它应该支持短键和长键ID,指纹和用户ID。GnuPG手册包含指定密钥的方法列表。

大多数在此描述如何指定密钥的手册都使用短密钥ID,由于碰撞攻击,我强烈建议不要这样做,而应使用整个指纹。

还有其他选项可以更改键的选择。有关各个选项的更多详细信息,请参阅Maven
GnuPG插件手册

  • 使用选择专用的钥匙圈 secretKeyring
  • 使用以下命令选择专用的GnuPG主目录 homedir
  • local-user使用以下选项将选项传递给GnuPGgpgArguments


 类似资料:
  • 正在签署的摘要到底是什么?如果签名嵌入到提交对象中,那么它很难是提交哈希本身-那么它是树哈希吗?还是别的什么?这是否意味着提交消息没有签名并且可能被篡改? 注意:我在这里使用一个用--object-type sha256初始化的git存储库来使用基于SHA-256的哈希值(默认情况下git使用SHA-1),但我的问题也适用于带有SHA-1哈希值的git存储库(以防gpg签名对SHA-1和SHA-2

  • null 并且我修改了app/build.gradle,使其具有: 我检查了my_keystore.jks的平台别名: 但当我试着去做: 或: 我得到: 无法从存储区“(...)/my_keystore.jks”读取密钥平台:密钥存储区格式无效

  • 我正在编写PGP服务器为用户生成密钥。 我想用Bouncy Castle在Java中用我的私钥签署任何生成的PGP公钥,使其为我的用户所信任。 我没有问题生成密钥对-它工作完美。

  • 我想在客户端设备上使用通过Ed25519生成的私钥对JWS(json web签名)进行签名。然后将这个签名发送到我的后端,并用公钥验证它。为了熟悉这个过程,我想尝试在node js中对JWS进行签名和验证 我的私钥和公钥都已生成,可以在base58中使用。这是我目前使用Ed25519私钥签署JWT的尝试: 密钥必须是KeyObject或CryptoKey类型之一。收到一个Uint8Array的实例

  • 我有一个CA提供的jks密钥库,用于对JAR签名。但是,我希望通过HTTPS托管一些内部应用程序,因此需要创建一个SSL证书,以便通过HTTPS加密数据。然而,为了避免浏览器中的不可信证书/未知主机警告,我想知道是否可以使用用于签名JAR的jks密钥库也对我的CSR进行签名,以便创建SSL证书。 到目前为止,我已经设法做到了以下几点: > 使用Java keytool生成证书和私钥对以创建JKS文

  • 我的问题是对称解密。而不是非对称解密。所以正确的答案是在这里只在Java中用密码短语解密PGP加密的文件 我使用gpg加密“Hello”: