1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @author Alexander Y. Kleymenov 208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage java.security.cert; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.math.BigInteger; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidKeyException; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchAlgorithmException; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchProviderException; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Principal; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.PublicKey; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.SignatureException; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CRLException; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.X509CRLEntry; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayList; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collection; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Date; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.security.auth.x500.X500Principal; 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.asn1.ASN1Integer; 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.asn1.ASN1OctetString; 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.Test; 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestSuite; 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class X509CRLSelectorTest extends TestCase { 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The abstract class stub implementation. 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private class TestCRL extends X509CRL { 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private X500Principal principal = null; 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private BigInteger crlNumber = null; 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private Date thisUpdate = null; 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private Date nextUpdate = null; 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public TestCRL(X500Principal principal) { 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.principal = principal; 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public TestCRL(Date thisUpdate, Date nextUpdate) { 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes setUpdateDates(thisUpdate, nextUpdate); 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public TestCRL(BigInteger crlNumber) { 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes setCrlNumber(crlNumber); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void setUpdateDates(Date thisUpdate, Date nextUpdate) { 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.thisUpdate = thisUpdate; 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.nextUpdate = nextUpdate; 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 78e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void setCrlNumber(BigInteger crlNumber) { 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.crlNumber = crlNumber; 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public X500Principal getIssuerX500Principal() { 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return principal; 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String toString() { 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean isRevoked(Certificate cert) { 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return true; 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Set getNonCriticalExtensionOIDs() { 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Set getCriticalExtensionOIDs() { 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getExtensionValue(String oid) { 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if ("2.5.29.20".equals(oid) && (crlNumber != null)) { 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return ASN1OctetString.getInstance().encode( 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ASN1Integer.getInstance().encode( 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes crlNumber.toByteArray())); 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean hasUnsupportedCriticalExtension() { 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return false; 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getEncoded() { 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void verify(PublicKey key) 1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws CRLException, NoSuchAlgorithmException, 1228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath InvalidKeyException, NoSuchProviderException, 1238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SignatureException { 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void verify(PublicKey key, String sigProvider) 1278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws CRLException, NoSuchAlgorithmException, 1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath InvalidKeyException, NoSuchProviderException, 1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SignatureException { 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int getVersion() { 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return 2; 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Principal getIssuerDN() { 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Date getThisUpdate() { 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return thisUpdate; 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Date getNextUpdate() { 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return nextUpdate; 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) { 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Set getRevokedCertificates() { 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getTBSCertList() { 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getSignature() { 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String getSigAlgName() { 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String getSigAlgOID() { 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getSigAlgParams() { 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setIssuers(Collection <X500Principal> issuers) method testing. 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any issuers match the selector in the case of 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null issuerNames criteria, if specified issuers match the selector, 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetIssuers() { 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss3 = new X500Principal("O=Third Org."); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(iss1); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(iss2); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl3 = new TestCRL(iss3); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuers(null); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL issuers should match in the case of null issuers.", 1948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl1) && selector.match(crl2)); 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList issuers = new ArrayList(2); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss1); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss2); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuers(issuers); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 2018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl1) && selector.match(crl2)); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 2038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl3)); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss3); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The internal issuer collection is not protected " 2068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "against the modifications.", selector.match(crl3)); 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setIssuerNames(Collection <?> names) method testing. 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any issuers match the selector in the case of 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null issuerNames criteria, if specified issuers match the selector, 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if not specified issuer does not match the selector, and if the 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * internal collection of issuer names is copied during initialization. 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetIssuerNames() { 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss1 = "O=First Org."; 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss2 = new byte[] 2208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath //manually obtained DER encoding of "O=Second Org." issuer name; 2218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 2228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46 }; 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss3 = "O=Third Org."; 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(new X500Principal(iss1)); 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(new X500Principal(iss2)); 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl3 = new TestCRL(new X500Principal(iss3)); 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuerNames(null); 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL issuers should match in the case of null issuers.", 2358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl1) && selector.match(crl2)); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList issuers = new ArrayList(2); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss1); 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss2); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuerNames(issuers); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 2478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl1) && selector.match(crl2)); 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 2498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl3)); 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss3); 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The internal issuer collection is not protected " 2528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "against the modifications.", selector.match(crl3)); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * addIssuer(X500Principal issuer) method testing. 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with specified issuers match the selector, 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAddIssuer() { 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(iss1); 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(iss2); 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 2698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl1)); 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 2718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl2)); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 2748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl2)); 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * addIssuerName(String name) method testing. 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with specified issuers match the selector, 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAddIssuerName1() { 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss1 = "O=First Org."; 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss2 = "O=Second Org."; 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(new X500Principal(iss1)); 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(new X500Principal(iss2)); 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss1); 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 2968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl1)); 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 2988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl2)); 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss2); 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 3068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl2)); 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * addIssuerName(byte[] name) method testing. 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with specified issuers match the selector, 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAddIssuerName2() { 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss1 = new byte[] 3178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath //manually obtained DER encoding of "O=First Org." issuer name; 3188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath { 48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 3198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 70, 105, 114, 115, 116, 32, 79, 114, 103, 46 }; 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss2 = new byte[] 3218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath //manually obtained DER encoding of "O=Second Org." issuer name; 3228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 3238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46 }; 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(new X500Principal(iss1)); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(new X500Principal(iss2)); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss1); 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 3348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl1)); 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 3368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl2)); 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss2); 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 3448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl2)); 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setMinCRLNumber(BigInteger minCRL) method testing. 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any crl number value match the selector in the case of 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null crlNumber criteria, if specified minCRL value matches the selector, 351e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * and if CRL with inappropriate crlNumber value does not match the selector. 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetMinCRLNumber() { 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(minCRL); 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(null); 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL should match in the case of null minCRLNumber.", 3608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 3638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(new BigInteger("10001")); 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 3668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setMaxCRLNumber(BigInteger maxCRL) method testing. 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any crl number value match the selector in the case of 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null crlNumber criteria, if specified maxCRL value matches the selector, 373e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * and if CRL with inappropriate crlNumber value does not match the selector. 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetMaxCRLNumber() { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(maxCRL); 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(null); 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL should match in the case of null minCRLNumber.", 3828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 3858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(new BigInteger("9999")); 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 3888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setDateAndTime(Date dateAndTime) method testing. 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any update dates match the selector in the case of 394e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * null dateAndTime criteria, if correct dates match and incorrect 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * do not match the selector. 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetDateAndTime() { 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(new Date(200), new Date(300)); 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(null); 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL should match in the case of null dateAndTime.", 4028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(200)); 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 4058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(250)); 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 4088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(300)); 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 4118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(150)); 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 4148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(350)); 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 4178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getIssuers() method testing. 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the method return null in the case of not specified issuers, 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if the returned collection corresponds to the specified issuers and 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this collection is unmodifiable. 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetIssuers() throws Exception { 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss3 = new X500Principal("O=Third Org."); 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss_name_1 = "O=First String DN"; 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss_name_2 = "O=Second String DN"; 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss_name_3 = "O=Third String DN"; 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("The collection should be null.", 4358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.getIssuers()); 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss_name_1); 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss_name_2); 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss_name_3); 441e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection result = selector.getIssuers(); 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Size does not correspond to expected", 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 5, result.size()); 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result.add(iss3); 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("The returned collection should be unmodifiable."); 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 4518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result.contains(iss1)); 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 4538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result.contains(iss2)); 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 4558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result.contains(new X500Principal(iss_name_1))); 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 4578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result.contains(new X500Principal(iss_name_2))); 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss3); 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 4608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result.contains(iss3)); 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getIssuerNames() method testing. 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the method return null in the case of not specified issuers, 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if the returned collection corresponds to the specified issuers. 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetIssuerNames() { 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss1 = new byte[] 4718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath //manually obtained DER encoding of "O=First Org." issuer name; 4728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath { 48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 4738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 70, 105, 114, 115, 116, 32, 79, 114, 103, 46 }; 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss2 = new byte[] 4758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath //manually obtained DER encoding of "O=Second Org." issuer name; 4768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 4778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46 }; 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("The collection should be null.", 4798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.getIssuerNames()); 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss1); 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss2); 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection result = selector.getIssuerNames(); 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("The collection should contain all of the specified DNs.", 4898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2, result.size()); 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getMinCRL() method testing. 494e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Tests if the method return null in the case of not specified minCRL 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * criteria, and if the returned value corresponds to the specified one. 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetMinCRL() { 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Initially the minCRL should be null.", 5008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.getMinCRL()); 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The result should be equal to specified.", 5048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath minCRL.equals(selector.getMinCRL())); 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getMaxCRL() method testing. 509e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Tests if the method return null in the case of not specified maxCRL 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * criteria, and if the returned value corresponds to the specified one. 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetMaxCRL() { 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Initially the maxCRL should be null.", 5158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.getMaxCRL()); 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The result should be equal to specified.", 5198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath maxCRL.equals(selector.getMaxCRL())); 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getDateAndTime() method testing. 524e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Tests if the method return null in the case of not specified dateAndTime 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * criteria, and if the returned value corresponds to the specified one. 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetDateAndTime() { 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Initially the dateAndTime criteria should be null.", 5308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.getDateAndTime()); 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(200); 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(date); 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The result should be equal to specified.", 5348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath date.equals(selector.getDateAndTime())); 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * match(CRL crl) method testing. 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the null object matches to the selector or not. 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testMatch() { 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 543e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes assertFalse("The null object should not match", 5448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match((X509CRL) null)); 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * clone() method testing. 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the selector is cloned correctly: the crl which matche to 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the initial selector should match to the clone and the change of clone 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * should not cause the change of initial selector. 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testClone() { 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss3 = new X500Principal("O=Third Org."); 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(200); 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(date); 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector clone = (X509CRLSelector) selector.clone(); 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(iss1); 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes crl.setCrlNumber(minCRL); 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes crl.setUpdateDates(new Date(200), new Date(200)); 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The specified CRL should match the clone selector.", 5738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.match(crl)); 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes clone.addIssuer(iss3); 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The changes of the clone selector should not cause " 5778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "the changes of initial object", 5788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath selector.getIssuerNames().size() == 3); 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testToString() { 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(200); 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(date); 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("The result should not be null.", selector.toString()); 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static Test suite() { 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return new TestSuite(X509CRLSelectorTest.class); 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 603