我无法使用 jpgpj 加密 avro 消息

I can't cypher an avro message using jpgpj

我正在尝试使用 jpgpj 库使用模式加密 avro 消息,但在加密时出现异常:

Exception in thread "main" org.bouncycastle.openpgp.PGPException: no suitable signing key found
    at org.c02e.jpgpj.Encryptor.sign(Encryptor.java:982)
    at org.c02e.jpgpj.Encryptor.prepareCiphertextOutputStream(Encryptor.java:773)
    at org.c02e.jpgpj.Encryptor.encrypt(Encryptor.java:691)
    at org.c02e.jpgpj.Encryptor.encrypt(Encryptor.java:662)
    at avro.EncryptPayload$.main(EncryptPayload.scala:40)
    at avro.EncryptPayload.main(EncryptPayload.scala)

我使用这些命令生成了一对密钥:

gpg --gen-key

gpg --armor --output public-key.gpg --export myemail@gmail.com

然后,我将 public-key.gpg 文件复制到具有此 code 的项目中的 src/main/resources,但发生了异常。异常很明显,我可以在源代码中看到它。 这不是找不到文件的问题,而是 public 密钥不能用作消息签名密钥的问题,这让我很困惑。我做错了什么?

当我更改此行时问题消失了:

    encryptor.setSigningAlgorithm(HashingAlgorithm.SHA256)

到这一行:

    encryptor.setSigningAlgorithm(HashingAlgorithm.Unsigned)

编辑

我分享了gist代码