use of org.apache.camel.component.crypto.cms.sig.DefaultSignerInfo 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");
}
}
Aggregations