我无法使用 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代码
我正在尝试使用 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代码