This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch camel-2.21.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit 97832a8c6a25d62f329ff3d2a81159e6a7ff4727 Author: Andrea Cosentino <[email protected]> AuthorDate: Wed Oct 24 15:07:58 2018 +0200 CAMEL-12897 - PGP Decryption in XML DSL not working --- .../camel/converter/crypto/PGPDataFormatUtil.java | 8 ++++ ...va => SpringPGPDataFormatNoPassPhraseTest.java} | 2 +- .../converter/crypto/SpringPGPDataFormatTest.java | 7 +--- .../crypto/SpringPGPDataFormatNoPassPhraseTest.xml | 43 +++++++++++++++++++++ .../camel/component/crypto/camel-private.pgp | Bin 0 -> 2547 bytes .../apache/camel/component/crypto/camel-public.pgp | Bin 0 -> 1245 bytes 6 files changed, 53 insertions(+), 7 deletions(-) diff --git a/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPDataFormatUtil.java b/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPDataFormatUtil.java index a46156e..700a17f 100644 --- a/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPDataFormatUtil.java +++ b/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPDataFormatUtil.java @@ -162,6 +162,14 @@ public final class PGPDataFormatUtil { return privateKey; } } + if (passphrase == null && passphraseAccessor == null) { + passphrase = ""; + PGPPrivateKey privateKey = secKey.extractPrivateKey(new JcePBESecretKeyDecryptorBuilder().setProvider(provider) + .build(passphrase.toCharArray())); + if (privateKey != null) { + return privateKey; + } + } } } diff --git a/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatTest.java b/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatNoPassPhraseTest.java similarity index 94% copy from components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatTest.java copy to components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatNoPassPhraseTest.java index 1c8d6fa..838cb1b 100644 --- a/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatTest.java +++ b/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatNoPassPhraseTest.java @@ -20,7 +20,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.spring.SpringCamelContext; import org.junit.Test; -public class SpringPGPDataFormatTest extends AbstractPGPDataFormatTest { +public class SpringPGPDataFormatNoPassPhraseTest extends AbstractPGPDataFormatTest { protected CamelContext createCamelContext() throws Exception { return SpringCamelContext.springCamelContext("/org/apache/camel/component/crypto/SpringPGPDataFormatTest.xml"); diff --git a/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatTest.java b/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatTest.java index 1c8d6fa..c311feb 100644 --- a/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatTest.java +++ b/components/camel-crypto/src/test/java/org/apache/camel/converter/crypto/SpringPGPDataFormatTest.java @@ -23,17 +23,12 @@ import org.junit.Test; public class SpringPGPDataFormatTest extends AbstractPGPDataFormatTest { protected CamelContext createCamelContext() throws Exception { - return SpringCamelContext.springCamelContext("/org/apache/camel/component/crypto/SpringPGPDataFormatTest.xml"); + return SpringCamelContext.springCamelContext("/org/apache/camel/component/crypto/SpringPGPDataFormatNoPassPhraseTest.xml"); } @Test public void testEncryption() throws Exception { doRoundTripEncryptionTests("direct:inline"); } - - @Test - public void testEncryptionWithKeyRingByteArray() throws Exception { - doRoundTripEncryptionTests("direct:pgp-key-ring-byte-array"); - } } diff --git a/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/SpringPGPDataFormatNoPassPhraseTest.xml b/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/SpringPGPDataFormatNoPassPhraseTest.xml new file mode 100644 index 0000000..52917eb --- /dev/null +++ b/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/SpringPGPDataFormatNoPassPhraseTest.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd + "> + + <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> + <!-- START SNIPPET: pgp-xml-basic --> + <dataFormats> + <!-- will load the file from classpath by default, but you can prefix with file: to load from file system --> + <pgp id="encrypt" keyFileName="org/apache/camel/component/crypto/camel-public.pgp" keyUserid="CamelPGPTest"/> + <pgp id="decrypt" keyFileName="org/apache/camel/component/crypto/camel-private.pgp"/> + </dataFormats> + + <route> + <from uri="direct:inline"/> + <marshal ref="encrypt"/> + <to uri="mock:encrypted"/> + <unmarshal ref="decrypt"/> + <to uri="mock:unencrypted"/> + </route> + + </camelContext> +</beans> \ No newline at end of file diff --git a/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/camel-private.pgp b/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/camel-private.pgp new file mode 100644 index 0000000..6f2a010 Binary files /dev/null and b/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/camel-private.pgp differ diff --git a/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/camel-public.pgp b/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/camel-public.pgp new file mode 100644 index 0000000..e50ec8d Binary files /dev/null and b/components/camel-crypto/src/test/resources/org/apache/camel/component/crypto/camel-public.pgp differ
