diff options
Diffstat (limited to 'bcpkix/src/main/java/org/bouncycastle/cms/test/ConverterTest.java')
-rw-r--r-- | bcpkix/src/main/java/org/bouncycastle/cms/test/ConverterTest.java | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/bcpkix/src/main/java/org/bouncycastle/cms/test/ConverterTest.java b/bcpkix/src/main/java/org/bouncycastle/cms/test/ConverterTest.java new file mode 100644 index 0000000..534d0dd --- /dev/null +++ b/bcpkix/src/main/java/org/bouncycastle/cms/test/ConverterTest.java @@ -0,0 +1,111 @@ +package org.bouncycastle.cms.test; + +import java.math.BigInteger; +import java.security.cert.X509CertSelector; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import org.bouncycastle.asn1.DEROctetString; +import org.bouncycastle.asn1.x500.X500Name; +import org.bouncycastle.cms.KeyTransRecipientId; +import org.bouncycastle.cms.SignerId; +import org.bouncycastle.cms.jcajce.JcaSelectorConverter; +import org.bouncycastle.cms.jcajce.JcaX509CertSelectorConverter; +import org.bouncycastle.util.Arrays; + +public class ConverterTest + extends TestCase +{ + public void testSignerIdConversion() + throws Exception + { + JcaX509CertSelectorConverter converter = new JcaX509CertSelectorConverter(); + JcaSelectorConverter toSelector = new JcaSelectorConverter(); + + SignerId sid1 = new SignerId(new X500Name("CN=Test"), BigInteger.valueOf(1), new byte[20]); + + X509CertSelector conv = converter.getCertSelector(sid1); + + assertTrue(conv.getIssuerAsString().equals("CN=Test")); + assertTrue(Arrays.areEqual(conv.getSubjectKeyIdentifier(), new DEROctetString(new byte[20]).getEncoded())); + assertEquals(conv.getSerialNumber(), sid1.getSerialNumber()); + + SignerId sid2 = toSelector.getSignerId(conv); + + assertEquals(sid1, sid2); + + sid1 = new SignerId(new X500Name("CN=Test"), BigInteger.valueOf(1)); + + conv = converter.getCertSelector(sid1); + + assertTrue(conv.getIssuerAsString().equals("CN=Test")); + assertNull(conv.getSubjectKeyIdentifier()); + assertEquals(conv.getSerialNumber(), sid1.getSerialNumber()); + + sid2 = toSelector.getSignerId(conv); + + assertEquals(sid1, sid2); + + sid1 = new SignerId(new byte[20]); + + conv = converter.getCertSelector(sid1); + + assertNull(conv.getIssuerAsString()); + assertTrue(Arrays.areEqual(conv.getSubjectKeyIdentifier(), new DEROctetString(new byte[20]).getEncoded())); + assertNull(conv.getSerialNumber()); + + sid2 = toSelector.getSignerId(conv); + + assertEquals(sid1, sid2); + } + + public void testRecipientIdConversion() + throws Exception + { + JcaX509CertSelectorConverter converter = new JcaX509CertSelectorConverter(); + JcaSelectorConverter toSelector = new JcaSelectorConverter(); + + KeyTransRecipientId ktid1 = new KeyTransRecipientId(new X500Name("CN=Test"), BigInteger.valueOf(1), new byte[20]); + + X509CertSelector conv = converter.getCertSelector(ktid1); + + assertTrue(conv.getIssuerAsString().equals("CN=Test")); + assertTrue(Arrays.areEqual(conv.getSubjectKeyIdentifier(), new DEROctetString(new byte[20]).getEncoded())); + assertEquals(conv.getSerialNumber(), ktid1.getSerialNumber()); + + KeyTransRecipientId ktid2 = toSelector.getKeyTransRecipientId(conv); + + assertEquals(ktid1, ktid2); + + ktid1 = new KeyTransRecipientId(new X500Name("CN=Test"), BigInteger.valueOf(1)); + + conv = converter.getCertSelector(ktid1); + + assertTrue(conv.getIssuerAsString().equals("CN=Test")); + assertNull(conv.getSubjectKeyIdentifier()); + assertEquals(conv.getSerialNumber(), ktid1.getSerialNumber()); + + ktid2 = toSelector.getKeyTransRecipientId(conv); + + assertEquals(ktid1, ktid2); + + ktid1 = new KeyTransRecipientId(new byte[20]); + + conv = converter.getCertSelector(ktid1); + + assertNull(conv.getIssuerAsString()); + assertTrue(Arrays.areEqual(conv.getSubjectKeyIdentifier(), new DEROctetString(new byte[20]).getEncoded())); + assertNull(conv.getSerialNumber()); + + ktid2 = toSelector.getKeyTransRecipientId(conv); + + assertEquals(ktid1, ktid2); + } + + public static Test suite() + throws Exception + { + return new TestSuite(ConverterTest.class); + } +} |