1 /*
2 * Copyright �, Aegeus Technology Limited.
3 * All rights reserved.
4 */
5 package jsdsi.certstore.jdbc;
6
7 import java.security.KeyPair;
8 import java.security.cert.CertPathBuilder;
9 import java.security.cert.CertPathBuilderResult;
10 import java.security.cert.CertStore;
11
12 import org.apache.commons.dbcp.BasicDataSource;
13
14 import jsdsi.AuthCert;
15 import jsdsi.Cert;
16 import jsdsi.CertPathParameters;
17 import jsdsi.Certificate;
18 import jsdsi.IssuerCertPathParameters;
19 import jsdsi.NameCert;
20 import jsdsi.Principal;
21 import jsdsi.Provider;
22 import jsdsi.Signature;
23 import jsdsi.StringTag;
24 import jsdsi.Tag;
25 import jsdsi.Validity;
26 import jsdsi.certstore.CertificateDAO;
27 import jsdsi.certstore.JsdsiCertStoreParameters;
28 import jsdsi.util.DateUtil;
29 import jsdsi.util.DigestAlgoEnum;
30 import jsdsi.util.KeyEnum;
31 import jsdsi.util.KeyPairFactory;
32 import junit.framework.TestCase;
33
34
35 /***
36 * @author Sean Radford
37 * @version $Revision: 1.1.4.4 $ $Date: 2004/12/12 17:01:39 $
38 */
39 public class ProverWithJdbcCertStoreTest extends TestCase {
40
41 static {
42 Provider.install();
43 }
44
45 private CertificateDAO dao;
46 private CertStore store;
47
48 /***
49 * @see TestCase#setUp()
50 */
51 protected void setUp() throws Exception {
52 super.setUp();
53 Provider.install();
54 BasicDataSource ds = new BasicDataSource();
55 ds.setDriverClassName("org.hsqldb.jdbcDriver");
56 ds.setUrl("jdbc:hsqldb:/tmp/jsdsi-testdb");
57 ds.setUsername("sa");
58 //ds.setPassword("");
59 this.dao = new JdbcCertificateDAO(ds);
60 JsdsiCertStoreParameters params = new JsdsiCertStoreParameters(dao);
61 this.store = CertStore.getInstance("SPKI", params);
62 }
63
64 /***
65 * @see TestCase#tearDown()
66 */
67 protected void tearDown() throws Exception {
68 super.tearDown();
69 }
70
71 public void test() throws Exception {
72 KeyPair kp1 = KeyPairFactory.create(KeyEnum.RSA, 512);
73 Certificate certificate = createAuthCertificate(kp1,
74 (Principal) kp1.getPublic(), new StringTag("test"));
75 this.dao.store(certificate);
76
77 Cert cert = certificate.getCert();
78
79 CertPathBuilder builder = CertPathBuilder.getInstance("SPKI");
80 CertPathParameters params = new IssuerCertPathParameters(cert,
81 this.store);
82 CertPathBuilderResult res = builder.build(params);
83
84 }
85
86 private Certificate createAuthCertificate(KeyPair kp,
87 Principal subject,
88 Tag tag) throws Exception {
89 Principal issuer = (Principal) kp.getPublic();
90 Validity validity = new Validity(DateUtil.newDate(),
91 DateUtil.newDate(0, 0, 1));
92 String display = "text/sexp";
93 String comment = "a test certificate";
94 boolean propagate = false;
95 AuthCert c = new AuthCert(issuer,
96 subject,
97 validity, display, comment, tag, propagate );
98 Signature s = Signature.create(kp, c, DigestAlgoEnum.MD5);
99 Certificate certificate = new Certificate(c, s);
100 return certificate;
101 }
102
103 private Certificate createNameCertificate(KeyPair kp,
104 Principal subject,
105 String name) throws Exception {
106 Principal issuer = (Principal) kp.getPublic();
107 Validity validity = new Validity(DateUtil.newDate(),
108 DateUtil.newDate(0, 0, 1));
109 String display = "text/sexp";
110 String comment = "a test certificate";
111 boolean propagate = false;
112 NameCert c = new NameCert(issuer,
113 subject, validity, display, comment, name);
114 Signature s = Signature.create(kp, c, DigestAlgoEnum.MD5);
115 Certificate certificate = new Certificate(c, s);
116 return certificate;
117 }
118
119 }
This page was automatically generated by Maven