001package org.apache.commons.ssl.org.bouncycastle.asn1.x509; 002 003import java.util.Enumeration; 004 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1GeneralizedTime; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 009import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 010import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1TaggedObject; 011import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 012import org.apache.commons.ssl.org.bouncycastle.asn1.DERTaggedObject; 013 014/** 015 * <pre> 016 * PrivateKeyUsagePeriod ::= SEQUENCE { 017 * notBefore [0] GeneralizedTime OPTIONAL, 018 * notAfter [1] GeneralizedTime OPTIONAL } 019 * </pre> 020 */ 021public class PrivateKeyUsagePeriod 022 extends ASN1Object 023{ 024 public static PrivateKeyUsagePeriod getInstance(Object obj) 025 { 026 if (obj instanceof PrivateKeyUsagePeriod) 027 { 028 return (PrivateKeyUsagePeriod)obj; 029 } 030 031 if (obj != null) 032 { 033 return new PrivateKeyUsagePeriod(ASN1Sequence.getInstance(obj)); 034 } 035 036 return null; 037 } 038 039 private ASN1GeneralizedTime _notBefore, _notAfter; 040 041 private PrivateKeyUsagePeriod(ASN1Sequence seq) 042 { 043 Enumeration en = seq.getObjects(); 044 while (en.hasMoreElements()) 045 { 046 ASN1TaggedObject tObj = (ASN1TaggedObject)en.nextElement(); 047 048 if (tObj.getTagNo() == 0) 049 { 050 _notBefore = ASN1GeneralizedTime.getInstance(tObj, false); 051 } 052 else if (tObj.getTagNo() == 1) 053 { 054 _notAfter = ASN1GeneralizedTime.getInstance(tObj, false); 055 } 056 } 057 } 058 059 public ASN1GeneralizedTime getNotBefore() 060 { 061 return _notBefore; 062 } 063 064 public ASN1GeneralizedTime getNotAfter() 065 { 066 return _notAfter; 067 } 068 069 public ASN1Primitive toASN1Primitive() 070 { 071 ASN1EncodableVector v = new ASN1EncodableVector(); 072 073 if (_notBefore != null) 074 { 075 v.add(new DERTaggedObject(false, 0, _notBefore)); 076 } 077 if (_notAfter != null) 078 { 079 v.add(new DERTaggedObject(false, 1, _notAfter)); 080 } 081 082 return new DERSequence(v); 083 } 084}