📄 testcertificatedata.java
字号:
/************************************************************************* * * * EJBCA: The OpenSource Certificate Authority * * * * This software is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or any later version. * * * * See terms of license at gnu.org. * * * *************************************************************************/ package se.anatom.ejbca.ca.store.junit;import java.util.*;import java.security.cert.*;import javax.naming.Context;import javax.naming.NamingException;import se.anatom.ejbca.ca.store.*;import se.anatom.ejbca.ca.crl.*;import se.anatom.ejbca.util.*;import se.anatom.ejbca.SecConst;import se.anatom.ejbca.log.Admin;import org.apache.log4j.Logger;import junit.framework.*;/** * Tests certificate store. * * @version $Id: TestCertificateData.java,v 1.25 2004/04/16 07:38:56 anatom Exp $ */public class TestCertificateData extends TestCase { static byte[] testcert = Base64.decode( ("MIICETCCAXqgAwIBAgIIEzy5vc2xpOIwDQYJKoZIhvcNAQEFBQAwLjEOMAwGA1UE" +"AxMFZWpiY2ExDzANBgNVBAoTBkFuYVRvbTELMAkGA1UEBhMCU0UwHhcNMDExMTE0" +"MTMxODU5WhcNMDMxMTE0MTMyODU5WjAsMQwwCgYDVQQDEwNmb28xDzANBgNVBAoT" +"BkFuYVRvbTELMAkGA1UEBhMCU0UwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAqPX5" +"YOgT76Tz5uDOmegzA6RRdOFR7/nyWc8Wu4FnU6litDqo1wQCD9Pqtq6XzWJ1smD5" +"svNhscRcXPeiucisoQIDAQABo34wfDAPBgNVHRMBAf8EBTADAQEAMA8GA1UdDwEB" +"/wQFAwMHoAAwHQYDVR0OBBYEFMrdBFmXrmAtP65uHZmF2Jc3shB1MB8GA1UdIwQY" +"MBaAFHxNs2NoKyv7/ipWKfwRyGU6d6voMBgGA1UdEQQRMA+BDWZvb0BhbmF0b20u" +"c2UwDQYJKoZIhvcNAQEFBQADgYEAH6AqvzaReZFMvYudIY6lCT5shodNTyjZBT0/" +"kBMHp1csVVqJl80Ngr2QzKE55Xhok05i7q9oLcRSbnQ8ZfnTDa9lZaWiZzX7LxF/" +"5fd74ol2m/J2LvVglqH9VEINI4RE+HxrMFy8QMROYbsOhl8Jk9TOsuDeQjEtgodm" +"gY5ai2k=").getBytes()); private static Logger log = Logger.getLogger(TestCertificateData.class); private static Context ctx; private static CertificateDataHome home; private static ICertificateStoreSessionHome storehome; private static X509Certificate cert; private static long revDate; /** * Creates a new TestCertificateData object. * * @param name name */ public TestCertificateData(String name) { super(name); } protected void setUp() throws Exception { log.debug(">setUp()"); CertTools.installBCProvider(); ctx = getInitialContext(); Object obj = ctx.lookup("CertificateData"); home = (CertificateDataHome) javax.rmi.PortableRemoteObject.narrow(obj, CertificateDataHome.class); Object obj2 = ctx.lookup("CertificateStoreSession"); storehome = (ICertificateStoreSessionHome) javax.rmi.PortableRemoteObject.narrow(obj2, ICertificateStoreSessionHome.class); cert = CertTools.getCertfromByteArray(testcert); log.debug("<setUp()"); } protected void tearDown() throws Exception { } private Context getInitialContext() throws NamingException { log.debug(">getInitialContext"); Context ctx = new javax.naming.InitialContext(); log.debug("<getInitialContext"); return ctx; } /** * creates new certs * * @throws Exception error */ public void test01CreateNewCert() throws Exception { log.debug(">test01CreateNewCert()"); X509Certificate cert = CertTools.getCertfromByteArray(testcert); CertificateDataPK pk = new CertificateDataPK(); pk.fingerprint = CertTools.getFingerprintAsString(cert); log.debug("keyed it! ="+ pk); CertificateData data1=null; try { data1 = home.create(cert); assertNotNull("Failed to create", data1); log.debug("created it!"); } catch (javax.ejb.DuplicateKeyException e) { home.remove(pk); log.debug("Removed it!"); data1 = home.create(cert); assertNotNull("Failed to create", data1); log.debug("created it!"); return; } log.debug("<test01CreateNewCert()"); } /** * finds and alters certificates * * @throws Exception error */ public void test02FindAndChange() throws Exception { log.debug(">test02FindAndChange()"); CertificateDataPK pk = new CertificateDataPK(); pk.fingerprint = CertTools.getFingerprintAsString(cert); CertificateData data2 = home.findByPrimaryKey(pk); assertNotNull("Failed to find cert", data2); log.debug("found by key! ="+ data2); log.debug("fp="+data2.getFingerprint()); log.debug("issuer="+data2.getIssuerDN()); log.debug("subject="+data2.getSubjectDN()); log.debug("cafp="+data2.getCAFingerprint()); log.debug("status="+data2.getStatus()); log.debug("type="+data2.getType()); log.debug("serno="+data2.getSerialNumber()); log.debug("expiredate="+data2.getExpireDate()); log.debug("revocationdate="+data2.getRevocationDate()); log.debug("revocationreason="+data2.getRevocationReason()); data2.setCAFingerprint("12345"); data2.setStatus(CertificateData.CERT_REVOKED); data2.setType(SecConst.USER_ENDUSER); data2.setRevocationDate(new Date()); data2.setRevocationReason(RevokedCertInfo.REVOKATION_REASON_KEYCOMPROMISE); log.debug("Changed it"); log.debug("<test02FindAndChange()"); } /** * listst and revokes certs * * @throws Exception error */ public void test03listAndRevoke() throws Exception { log.debug(">test03listAndRevoke()"); ICertificateStoreSessionRemote store = storehome.create(); String issuerDN=CertTools.getIssuerDN(cert); String subjectDN=CertTools.getSubjectDN(cert); // List all certificates to see Collection certfps = store.listAllCertificates(new Admin(Admin.TYPE_INTERNALUSER), issuerDN); assertNotNull("failed to list certs", certfps); assertTrue("failed to list certs", certfps.size() != 0); int size = certfps.size(); log.debug("List certs: " + size); // List all certificates for user foo, which we have created in TestSignSession certfps = store.findCertificatesBySubjectAndIssuer(new Admin(Admin.TYPE_INTERNALUSER), subjectDN, issuerDN); assertTrue("something weird with size, all < foos", size >= certfps.size()); log.debug("List certs for foo: " + certfps.size()); revDate = new Date().getTime(); Iterator iter = certfps.iterator(); while (iter.hasNext()) { X509Certificate cert = (X509Certificate)iter.next(); String fp = CertTools.getFingerprintAsString(cert); log.debug(fp); // Revoke all foos certificates CertificateDataPK revpk = new CertificateDataPK(fp); CertificateData rev = home.findByPrimaryKey(revpk); rev.setStatus(CertificateData.CERT_REVOKED); rev.setRevocationReason(RevokedCertInfo.REVOKATION_REASON_AFFILIATIONCHANGED); rev.setRevocationDate(revDate); log.debug("Revoked cert "+fp); } log.debug("<test03listAndRevoke()"); } /**
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -