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

时间:2015-02-23 14:34:38

标签: encryption mule public-key-encryption pgp

我正在尝试使用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)
********************************************************************************

有没有办法解决这个问题?我尝试为密码设置一个空间,但没有雪茄。

1 个答案:

答案 0 :(得分:0)

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");

因此,我能想到的问题的唯一解决方法是实际使用密码。