1
10package org.jstk.pki;
11
12import java.io.*;
13
14import org.jstk.asn1.*;
15import org.jstk.pem.*;
16import java.math.BigInteger;
17
18
32public class TBSCertificate extends ASN1Seq{
33 private Version version = new Version(CONTEXT, EXPLICIT, 0);
34 private ASN1Integer serialNumber = new ASN1Integer();
35 private AlgorithmIdentifier algorithm = new AlgorithmIdentifier();
36 private Name issuer = new Name();
37 private Validity validity = new Validity();
38 private Name subject = new Name();
39 private SubjectPublicKeyInfo publicKeyInfo = new SubjectPublicKeyInfo();
40 private ASN1BitString issuerUniqueID = new ASN1BitString(CONTEXT, IMPLICIT, 1);
41 private ASN1BitString subjectUniqueID = new ASN1BitString(CONTEXT, IMPLICIT, 2);
42
45 private ASN1Explicit extensions = new ASN1Explicit(CONTEXT, EXPLICIT, 3);
46
47 public TBSCertificate(){
48 super();
49 issuerUniqueID.setOptional(true);
50 subjectUniqueID.setOptional(true);
51 extensions.setOptional(true);
52
53 add(version);
54 add(serialNumber);
55 add(algorithm);
56 add(issuer);
57 add(validity);
58 add(subject);
59 add(publicKeyInfo);
60 add(issuerUniqueID);
61 add(subjectUniqueID);
62 add(extensions);
63 }
64
65 public Version getVersion(){
66 return version;
67 }
68
69 public ASN1Integer getSerialNumber(){
70 return serialNumber;
71 }
72
73 public AlgorithmIdentifier getAlgorithm(){
74 return algorithm;
75 }
76
77 public Name getIssuer(){
78 return issuer;
79 }
80
81 public Validity getValidity(){
82 return validity;
83 }
84
85 public Name getSubject(){
86 return subject;
87 }
88
89 public SubjectPublicKeyInfo getSubjectPublicKeyInfo(){
90 return publicKeyInfo;
91 }
92
93 public ASN1Explicit getExtensions(){
94 return extensions;
95 }
96
97 public String toString(){
98 StringBuffer sb = new StringBuffer();
99 sb.append("TBSCertificate-SEQ(" + version.toString() + ", ");
00 sb.append(serialNumber.toString() + ", " + algorithm.toString());
01 sb.append(", " + issuer.toString() + ", " + validity.toString());
02 sb.append(", " + subject.toString() + ", " + publicKeyInfo.toString() +
03 extensions.toString() + ")");
04 return sb.toString();
05 }
06}
07
08