001package org.apache.commons.ssl.org.bouncycastle.asn1.x509; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1TaggedObject; 008import org.apache.commons.ssl.org.bouncycastle.asn1.DERBitString; 009import org.apache.commons.ssl.org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 010import org.apache.commons.ssl.org.bouncycastle.asn1.x500.X500Name; 011 012/** 013 * an X509Certificate structure. 014 * <pre> 015 * Certificate ::= SEQUENCE { 016 * tbsCertificate TBSCertificate, 017 * signatureAlgorithm AlgorithmIdentifier, 018 * signature BIT STRING 019 * } 020 * </pre> 021 * @deprecated use org.bouncycastle.asn1.x509.Certificate 022 */ 023public class X509CertificateStructure 024 extends ASN1Object 025 implements X509ObjectIdentifiers, PKCSObjectIdentifiers 026{ 027 ASN1Sequence seq; 028 TBSCertificateStructure tbsCert; 029 AlgorithmIdentifier sigAlgId; 030 DERBitString sig; 031 032 public static X509CertificateStructure getInstance( 033 ASN1TaggedObject obj, 034 boolean explicit) 035 { 036 return getInstance(ASN1Sequence.getInstance(obj, explicit)); 037 } 038 039 public static X509CertificateStructure getInstance( 040 Object obj) 041 { 042 if (obj instanceof X509CertificateStructure) 043 { 044 return (X509CertificateStructure)obj; 045 } 046 else if (obj != null) 047 { 048 return new X509CertificateStructure(ASN1Sequence.getInstance(obj)); 049 } 050 051 return null; 052 } 053 054 public X509CertificateStructure( 055 ASN1Sequence seq) 056 { 057 this.seq = seq; 058 059 // 060 // correct x509 certficate 061 // 062 if (seq.size() == 3) 063 { 064 tbsCert = TBSCertificateStructure.getInstance(seq.getObjectAt(0)); 065 sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); 066 067 sig = DERBitString.getInstance(seq.getObjectAt(2)); 068 } 069 else 070 { 071 throw new IllegalArgumentException("sequence wrong size for a certificate"); 072 } 073 } 074 075 public TBSCertificateStructure getTBSCertificate() 076 { 077 return tbsCert; 078 } 079 080 public int getVersion() 081 { 082 return tbsCert.getVersion(); 083 } 084 085 public ASN1Integer getSerialNumber() 086 { 087 return tbsCert.getSerialNumber(); 088 } 089 090 public X500Name getIssuer() 091 { 092 return tbsCert.getIssuer(); 093 } 094 095 public Time getStartDate() 096 { 097 return tbsCert.getStartDate(); 098 } 099 100 public Time getEndDate() 101 { 102 return tbsCert.getEndDate(); 103 } 104 105 public X500Name getSubject() 106 { 107 return tbsCert.getSubject(); 108 } 109 110 public SubjectPublicKeyInfo getSubjectPublicKeyInfo() 111 { 112 return tbsCert.getSubjectPublicKeyInfo(); 113 } 114 115 public AlgorithmIdentifier getSignatureAlgorithm() 116 { 117 return sigAlgId; 118 } 119 120 public DERBitString getSignature() 121 { 122 return sig; 123 } 124 125 public ASN1Primitive toASN1Primitive() 126 { 127 return seq; 128 } 129}