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/** 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes* @author Alexander Y. Kleymenov 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes*/ 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) 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws CRLException, NoSuchAlgorithmException, 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InvalidKeyException, NoSuchProviderException, 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SignatureException 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void verify(PublicKey key, String sigProvider) 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws CRLException, NoSuchAlgorithmException, 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InvalidKeyException, NoSuchProviderException, 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SignatureException 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int getVersion() { 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return 2; 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Principal getIssuerDN() { 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Date getThisUpdate() { 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return thisUpdate; 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Date getNextUpdate() { 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return nextUpdate; 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) { 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Set getRevokedCertificates() { 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getTBSCertList() { 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getSignature() { 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String getSigAlgName() { 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String getSigAlgOID() { 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getSigAlgParams() { 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setIssuers(Collection <X500Principal> issuers) method testing. 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any issuers match the selector in the case of 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null issuerNames criteria, if specified issuers match the selector, 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetIssuers() { 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss3 = new X500Principal("O=Third Org."); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(iss1); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(iss2); 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl3 = new TestCRL(iss3); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuers(null); 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL issuers should match in the case of null issuers.", 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl1) && selector.match(crl2)); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList issuers = new ArrayList(2); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss1); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss2); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuers(issuers); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl1) && selector.match(crl2)); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl3)); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss3); 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The internal issuer collection is not protected " 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + "against the modifications.", selector.match(crl3)); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setIssuerNames(Collection <?> names) method testing. 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any issuers match the selector in the case of 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null issuerNames criteria, if specified issuers match the selector, 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if not specified issuer does not match the selector, and if the 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * internal collection of issuer names is copied during initialization. 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetIssuerNames() { 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss1 = "O=First Org."; 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss2 = new byte[] 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //manually obtained DER encoding of "O=Second Org." issuer name; 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes {48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46}; 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss3 = "O=Third Org."; 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(new X500Principal(iss1)); 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(new X500Principal(iss2)); 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl3 = new TestCRL(new X500Principal(iss3)); 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuerNames(null); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL issuers should match in the case of null issuers.", 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl1) && selector.match(crl2)); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList issuers = new ArrayList(2); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss1); 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss2); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setIssuerNames(issuers); 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl1) && selector.match(crl2)); 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl3)); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes issuers.add(iss3); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The internal issuer collection is not protected " 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + "against the modifications.", selector.match(crl3)); 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * addIssuer(X500Principal issuer) method testing. 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with specified issuers match the selector, 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAddIssuer() { 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(iss1); 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(iss2); 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl1)); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl2)); 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl2)); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * addIssuerName(String name) method testing. 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with specified issuers match the selector, 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAddIssuerName1() { 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss1 = "O=First Org."; 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss2 = "O=Second Org."; 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(new X500Principal(iss1)); 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(new X500Principal(iss2)); 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss1); 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl1)); 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl2)); 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss2); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl2)); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * addIssuerName(byte[] name) method testing. 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with specified issuers match the selector, 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and if not specified issuer does not match the selector. 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAddIssuerName2() { 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss1 = new byte[] 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //manually obtained DER encoding of "O=First Org." issuer name; 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes {48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70, 105, 114, 115, 116, 32, 79, 114, 103, 46}; 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss2 = new byte[] 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //manually obtained DER encoding of "O=Second Org." issuer name; 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes {48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46}; 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl1 = new TestCRL(new X500Principal(iss1)); 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl2 = new TestCRL(new X500Principal(iss2)); 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss1); 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl1)); 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl2)); 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss2); 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl2)); 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setMinCRLNumber(BigInteger minCRL) method testing. 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any crl number value match the selector in the case of 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null crlNumber criteria, if specified minCRL value matches the selector, 353e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * and if CRL with inappropriate crlNumber value does not match the selector. 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetMinCRLNumber() { 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(minCRL); 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(null); 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL should match in the case of null minCRLNumber.", 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(new BigInteger("10001")); 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setMaxCRLNumber(BigInteger maxCRL) method testing. 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any crl number value match the selector in the case of 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * null crlNumber criteria, if specified maxCRL value matches the selector, 375e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * and if CRL with inappropriate crlNumber value does not match the selector. 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetMaxCRLNumber() { 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(maxCRL); 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(null); 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL should match in the case of null minCRLNumber.", 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(new BigInteger("9999")); 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * setDateAndTime(Date dateAndTime) method testing. 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if CRLs with any update dates match the selector in the case of 396e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * null dateAndTime criteria, if correct dates match and incorrect 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * do not match the selector. 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetDateAndTime() { 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(new Date(200), new Date(300)); 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(null); 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Any CRL should match in the case of null dateAndTime.", 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(200)); 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(250)); 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(300)); 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The CRL should match the selection criteria.", 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(150)); 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(new Date(350)); 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The CRL should not match the selection criteria.", 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getIssuers() method testing. 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the method return null in the case of not specified issuers, 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if the returned collection corresponds to the specified issuers and 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this collection is unmodifiable. 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetIssuers() throws Exception { 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss3 = new X500Principal("O=Third Org."); 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss_name_1 = "O=First String DN"; 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss_name_2 = "O=Second String DN"; 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String iss_name_3 = "O=Third String DN"; 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("The collection should be null.", 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.getIssuers()); 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss_name_1); 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss_name_2); 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss_name_3); 443e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection result = selector.getIssuers(); 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Size does not correspond to expected", 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 5, result.size()); 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result.add(iss3); 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("The returned collection should be unmodifiable."); 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result.contains(iss1)); 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result.contains(iss2)); 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result.contains(new X500Principal(iss_name_1))); 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result.contains(new X500Principal(iss_name_2))); 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss3); 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The collection should contain the specified DN.", 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result.contains(iss3)); 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getIssuerNames() method testing. 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the method return null in the case of not specified issuers, 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if the returned collection corresponds to the specified issuers. 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetIssuerNames() { 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss1 = new byte[] 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //manually obtained DER encoding of "O=First Org." issuer name; 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes {48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70, 105, 114, 115, 116, 32, 79, 114, 103, 46}; 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] iss2 = new byte[] 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //manually obtained DER encoding of "O=Second Org." issuer name; 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes {48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46}; 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("The collection should be null.", 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.getIssuerNames()); 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss1); 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuerName(iss2); 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IOException was thrown."); 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection result = selector.getIssuerNames(); 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("The collection should contain all of the specified DNs.", 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2, result.size()); 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getMinCRL() method testing. 496e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Tests if the method return null in the case of not specified minCRL 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * criteria, and if the returned value corresponds to the specified one. 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetMinCRL() { 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Initially the minCRL should be null.", 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.getMinCRL()); 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The result should be equal to specified.", 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes minCRL.equals(selector.getMinCRL())); 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getMaxCRL() method testing. 511e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Tests if the method return null in the case of not specified maxCRL 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * criteria, and if the returned value corresponds to the specified one. 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetMaxCRL() { 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Initially the maxCRL should be null.", 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.getMaxCRL()); 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The result should be equal to specified.", 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes maxCRL.equals(selector.getMaxCRL())); 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getDateAndTime() method testing. 526e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Tests if the method return null in the case of not specified dateAndTime 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * criteria, and if the returned value corresponds to the specified one. 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetDateAndTime() { 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Initially the dateAndTime criteria should be null.", 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.getDateAndTime()); 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(200); 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(date); 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The result should be equal to specified.", 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes date.equals(selector.getDateAndTime())); 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * match(CRL crl) method testing. 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the null object matches to the selector or not. 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testMatch() { 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 545e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes assertFalse("The null object should not match", 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match((X509CRL) null)); 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * clone() method testing. 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests if the selector is cloned correctly: the crl which matche to 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the initial selector should match to the clone and the change of clone 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * should not cause the change of initial selector. 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testClone() { 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss3 = new X500Principal("O=Third Org."); 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(200); 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(date); 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector clone = (X509CRLSelector) selector.clone(); 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestCRL crl = new TestCRL(iss1); 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes crl.setCrlNumber(minCRL); 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes crl.setUpdateDates(new Date(200), new Date(200)); 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("The specified CRL should match the clone selector.", 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.match(crl)); 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes clone.addIssuer(iss3); 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("The changes of the clone selector should not cause " 579e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes + "the changes of initial object", 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.getIssuerNames().size() == 3); 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testToString() { 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X509CRLSelector selector = new X509CRLSelector(); 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss1 = new X500Principal("O=First Org."); 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes X500Principal iss2 = new X500Principal("O=Second Org."); 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger minCRL = new BigInteger("10000"); 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger maxCRL = new BigInteger("10000"); 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(200); 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss1); 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.addIssuer(iss2); 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMinCRLNumber(minCRL); 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setMaxCRLNumber(maxCRL); 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes selector.setDateAndTime(date); 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("The result should not be null.", selector.toString()); 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static Test suite() { 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return new TestSuite(X509CRLSelectorTest.class); 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 605