带有空密码的 PGP 在 Mule 中失败

PGP with empty passphrase fails in Mule

我正在尝试使用 PGP 在 Mule 中创建加密解密服务。当我创建没有密码的密钥对时(因为这只是一个概念证明),自然我不会在我的配置中设置它。然而,Mule 似乎正在强制执行非空密码。

我遇到的错误:

    ERROR 2015-02-23 14:19:31,509 [[mule-pgp].HTTP_Listener_Configuration.worker.01] org.mule.exception.DefaultMessagingExceptionStrategy: 
********************************************************************************
Message               : Crypto Failure
Code                  : MULE_ERROR-111
--------------------------------------------------------------------------------
Exception stack is:
1. The password should not be null (java.lang.IllegalArgumentException)
  org.apache.commons.lang.Validate:203 (null)
2. Crypto Failure (org.mule.api.security.CryptoFailureException)
  org.mule.module.pgp.KeyBasedEncryptionStrategy:75 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/security/CryptoFailureException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.IllegalArgumentException: The password should not be null
    at org.apache.commons.lang.Validate.notNull(Validate.java:203)
    at org.mule.module.pgp.DecryptStreamTransformer.<init>(DecryptStreamTransformer.java:56)
    at org.mule.module.pgp.KeyBasedEncryptionStrategy.decrypt(KeyBasedEncryptionStrategy.java:69)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************

有什么办法可以解决这个问题吗?我尝试为密码设置 space 但没有雪茄。

source code显示了一堆无法绕过的验证:

Validate.notNull(toBeDecrypted, "The toBeDecrypted should not be null");
Validate.notNull(publicKey, "The publicKey should not be null");
Validate.notNull(secretKey, "The secretKey should not be null");
Validate.notNull(password, "The password should not be null");
Validate.notNull(provider, "The security provider can't be null");

所以我能想到的解决你的问题的唯一方法是实际使用密码。