Repository: cxf Updated Branches: refs/heads/master 04720d55a -> b6b987218
[CXF-6993] Adding a disabled test Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/74d79901 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/74d79901 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/74d79901 Branch: refs/heads/master Commit: 74d79901f145c6f25419fbbf326058522aca2fd3 Parents: aa5cb3f Author: Sergey Beryozkin <[email protected]> Authored: Thu Dec 29 15:42:43 2016 +0000 Committer: Sergey Beryozkin <[email protected]> Committed: Thu Dec 29 15:42:43 2016 +0000 ---------------------------------------------------------------------- .../security/jose/jwe/JweJsonConsumerTest.java | 48 +++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/74d79901/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweJsonConsumerTest.java ---------------------------------------------------------------------- diff --git a/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweJsonConsumerTest.java b/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweJsonConsumerTest.java index 38c610d..1c0c78c 100644 --- a/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweJsonConsumerTest.java +++ b/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweJsonConsumerTest.java @@ -20,11 +20,14 @@ package org.apache.cxf.rs.security.jose.jwe; import java.security.Security; import java.util.Collections; +import java.util.LinkedList; +import java.util.List; import javax.crypto.Cipher; import javax.crypto.SecretKey; import org.apache.cxf.common.util.Base64UrlUtility; +import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils; import org.apache.cxf.rs.security.jose.jwa.ContentAlgorithm; import org.apache.cxf.rs.security.jose.jwa.KeyAlgorithm; @@ -34,6 +37,7 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; public class JweJsonConsumerTest extends Assert { @@ -131,13 +135,55 @@ public class JweJsonConsumerTest extends Assert { @Test public void testMultipleRecipients() { + doTestMultipleRecipients(JweJsonProducerTest.MULTIPLE_RECIPIENTS_OUTPUT); + } + @Test + @Ignore + public void testMultipleRecipientsAutogeneratedCek() { + final String text = "The true sign of intelligence is not knowledge but imagination."; + SecretKey wrapperKey1 = CryptoUtils.createSecretKeySpec(JweJsonProducerTest.WRAPPER_BYTES1, "AES"); + SecretKey wrapperKey2 = CryptoUtils.createSecretKeySpec(JweJsonProducerTest.WRAPPER_BYTES2, "AES"); + + JweHeaders protectedHeaders = new JweHeaders(ContentAlgorithm.A128GCM); + JweHeaders sharedUnprotectedHeaders = new JweHeaders(); + sharedUnprotectedHeaders.setJsonWebKeysUrl("https://server.example.com/keys.jwks"); + sharedUnprotectedHeaders.setKeyEncryptionAlgorithm(KeyAlgorithm.A128KW); + + List<JweEncryptionProvider> jweProviders = new LinkedList<JweEncryptionProvider>(); + + KeyEncryptionProvider keyEncryption1 = + JweUtils.getSecretKeyEncryptionAlgorithm(wrapperKey1, KeyAlgorithm.A128KW); + ContentEncryptionProvider contentEncryption = + new AesGcmContentEncryptionAlgorithm(ContentAlgorithm.A128GCM); + + JweEncryptionProvider jwe1 = new JweEncryption(keyEncryption1, contentEncryption); + KeyEncryptionProvider keyEncryption2 = + JweUtils.getSecretKeyEncryptionAlgorithm(wrapperKey2, KeyAlgorithm.A128KW); + JweEncryptionProvider jwe2 = new JweEncryption(keyEncryption2, contentEncryption); + jweProviders.add(jwe1); + jweProviders.add(jwe2); + + List<JweHeaders> perRecipientHeades = new LinkedList<JweHeaders>(); + perRecipientHeades.add(new JweHeaders("key1")); + perRecipientHeades.add(new JweHeaders("key2")); + + JweJsonProducer p = new JweJsonProducer(protectedHeaders, + sharedUnprotectedHeaders, + StringUtils.toBytesUTF8(text), + StringUtils.toBytesUTF8(JweJsonProducerTest.EXTRA_AAD_SOURCE), + false); + + String jweJson = p.encryptWith(jweProviders, perRecipientHeades); + doTestMultipleRecipients(jweJson); + } + private void doTestMultipleRecipients(String jweJson) { final String text = "The true sign of intelligence is not knowledge but imagination."; SecretKey wrapperKey1 = CryptoUtils.createSecretKeySpec(JweJsonProducerTest.WRAPPER_BYTES1, "AES"); SecretKey wrapperKey2 = CryptoUtils.createSecretKeySpec(JweJsonProducerTest.WRAPPER_BYTES2, "AES"); - JweJsonConsumer consumer = new JweJsonConsumer(JweJsonProducerTest.MULTIPLE_RECIPIENTS_OUTPUT); + JweJsonConsumer consumer = new JweJsonConsumer(jweJson); KeyAlgorithm keyAlgo = consumer.getSharedUnprotectedHeader().getKeyEncryptionAlgorithm(); ContentAlgorithm ctAlgo = consumer.getProtectedHeader().getContentEncryptionAlgorithm(); // Recipient 1
