001package org.apache.commons.ssl.org.bouncycastle.asn1.x509; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1GeneralizedTime; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 008import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 009 010public class AttCertValidityPeriod 011 extends ASN1Object 012{ 013 ASN1GeneralizedTime notBeforeTime; 014 ASN1GeneralizedTime notAfterTime; 015 016 public static AttCertValidityPeriod getInstance( 017 Object obj) 018 { 019 if (obj instanceof AttCertValidityPeriod) 020 { 021 return (AttCertValidityPeriod)obj; 022 } 023 else if (obj != null) 024 { 025 return new AttCertValidityPeriod(ASN1Sequence.getInstance(obj)); 026 } 027 028 return null; 029 } 030 031 private AttCertValidityPeriod( 032 ASN1Sequence seq) 033 { 034 if (seq.size() != 2) 035 { 036 throw new IllegalArgumentException("Bad sequence size: " 037 + seq.size()); 038 } 039 040 notBeforeTime = ASN1GeneralizedTime.getInstance(seq.getObjectAt(0)); 041 notAfterTime = ASN1GeneralizedTime.getInstance(seq.getObjectAt(1)); 042 } 043 044 /** 045 * @param notBeforeTime 046 * @param notAfterTime 047 */ 048 public AttCertValidityPeriod( 049 ASN1GeneralizedTime notBeforeTime, 050 ASN1GeneralizedTime notAfterTime) 051 { 052 this.notBeforeTime = notBeforeTime; 053 this.notAfterTime = notAfterTime; 054 } 055 056 public ASN1GeneralizedTime getNotBeforeTime() 057 { 058 return notBeforeTime; 059 } 060 061 public ASN1GeneralizedTime getNotAfterTime() 062 { 063 return notAfterTime; 064 } 065 066 /** 067 * Produce an object suitable for an ASN1OutputStream. 068 * <pre> 069 * AttCertValidityPeriod ::= SEQUENCE { 070 * notBeforeTime GeneralizedTime, 071 * notAfterTime GeneralizedTime 072 * } 073 * </pre> 074 */ 075 public ASN1Primitive toASN1Primitive() 076 { 077 ASN1EncodableVector v = new ASN1EncodableVector(); 078 079 v.add(notBeforeTime); 080 v.add(notAfterTime); 081 082 return new DERSequence(v); 083 } 084}