Search in sources :

Example 1 with DefaultKeyTransRecipientInfo

use of org.apache.camel.component.crypto.cms.crypt.DefaultKeyTransRecipientInfo in project wildfly-camel by wildfly-extras.

the class CryptoCmsIntegrationTest method testCryptoCmsSignEncryptDecryptVerify.

@Test
public void testCryptoCmsSignEncryptDecryptVerify() throws Exception {
    Assume.assumeFalse("[#2241] CryptoCmsIntegrationTest fails on IBM JDK", EnvironmentUtils.isIbmJDK() || EnvironmentUtils.isOpenJDK());
    CamelContext camelctx = new DefaultCamelContext();
    camelctx.addRoutes(new RouteBuilder() {

        @Override
        public void configure() throws Exception {
            from("direct:start").to("crypto-cms:sign://testsign?signer=#signer1&signer=#signer2&includeContent=true").to("crypto-cms:encrypt://testencrpyt?toBase64=true&recipient=#recipient1&contentEncryptionAlgorithm=DESede/CBC/PKCS5Padding&secretKeyLength=128").to("crypto-cms:decrypt://testdecrypt?fromBase64=true&keyStoreParameters=#keyStoreParameters").to("crypto-cms:verify://testverify?keyStoreParameters=#keyStoreParameters").to("mock:result");
        }
    });
    KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
    keyStoreParameters.setType("JCEKS");
    keyStoreParameters.setResource("/crypto.keystore");
    keyStoreParameters.setPassword("Abcd1234");
    DefaultKeyTransRecipientInfo recipient = new DefaultKeyTransRecipientInfo();
    recipient.setCertificateAlias("rsa");
    recipient.setKeyStoreParameters(keyStoreParameters);
    DefaultSignerInfo signerInfo = new DefaultSignerInfo();
    signerInfo.setIncludeCertificates(true);
    signerInfo.setSignatureAlgorithm("SHA256withRSA");
    signerInfo.setPrivateKeyAlias("rsa");
    signerInfo.setKeyStoreParameters(keyStoreParameters);
    DefaultSignerInfo signerInfo2 = new DefaultSignerInfo();
    signerInfo2.setSignatureAlgorithm("SHA256withDSA");
    signerInfo2.setPrivateKeyAlias("dsa");
    signerInfo2.setKeyStoreParameters(keyStoreParameters);
    MockEndpoint mockEndpoint = camelctx.getEndpoint("mock:result", MockEndpoint.class);
    mockEndpoint.expectedBodiesReceived("Testmessage");
    context.bind("keyStoreParameters", keyStoreParameters);
    context.bind("signer1", signerInfo);
    context.bind("signer2", signerInfo2);
    context.bind("recipient1", recipient);
    camelctx.start();
    try {
        ProducerTemplate template = camelctx.createProducerTemplate();
        template.sendBody("direct:start", "Testmessage");
        mockEndpoint.assertIsSatisfied();
    } finally {
        camelctx.stop();
        context.unbind("keyStoreParameters");
        context.unbind("signer1");
        context.unbind("signer2");
        context.unbind("recipient1");
    }
}
Also used : CamelContext(org.apache.camel.CamelContext) DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) ProducerTemplate(org.apache.camel.ProducerTemplate) DefaultKeyTransRecipientInfo(org.apache.camel.component.crypto.cms.crypt.DefaultKeyTransRecipientInfo) RouteBuilder(org.apache.camel.builder.RouteBuilder) MockEndpoint(org.apache.camel.component.mock.MockEndpoint) DefaultSignerInfo(org.apache.camel.component.crypto.cms.sig.DefaultSignerInfo) KeyStoreParameters(org.apache.camel.util.jsse.KeyStoreParameters) DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) Test(org.junit.Test)

Aggregations

CamelContext (org.apache.camel.CamelContext)1 ProducerTemplate (org.apache.camel.ProducerTemplate)1 RouteBuilder (org.apache.camel.builder.RouteBuilder)1 DefaultKeyTransRecipientInfo (org.apache.camel.component.crypto.cms.crypt.DefaultKeyTransRecipientInfo)1 DefaultSignerInfo (org.apache.camel.component.crypto.cms.sig.DefaultSignerInfo)1 MockEndpoint (org.apache.camel.component.mock.MockEndpoint)1 DefaultCamelContext (org.apache.camel.impl.DefaultCamelContext)1 KeyStoreParameters (org.apache.camel.util.jsse.KeyStoreParameters)1 Test (org.junit.Test)1