001package org.apache.commons.ssl.org.bouncycastle.asn1.esf; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Null; 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.BERTags; 007import org.apache.commons.ssl.org.bouncycastle.asn1.DERNull; 008 009public class SignaturePolicyIdentifier 010 extends ASN1Object 011{ 012 private SignaturePolicyId signaturePolicyId; 013 private boolean isSignaturePolicyImplied; 014 015 public static SignaturePolicyIdentifier getInstance( 016 Object obj) 017 { 018 if (obj instanceof SignaturePolicyIdentifier) 019 { 020 return (SignaturePolicyIdentifier)obj; 021 } 022 else if (obj instanceof ASN1Null || hasEncodedTagValue(obj, BERTags.NULL)) 023 { 024 return new SignaturePolicyIdentifier(); 025 } 026 else if (obj != null) 027 { 028 return new SignaturePolicyIdentifier(SignaturePolicyId.getInstance(obj)); 029 } 030 031 return null; 032 } 033 034 public SignaturePolicyIdentifier() 035 { 036 this.isSignaturePolicyImplied = true; 037 } 038 039 public SignaturePolicyIdentifier( 040 SignaturePolicyId signaturePolicyId) 041 { 042 this.signaturePolicyId = signaturePolicyId; 043 this.isSignaturePolicyImplied = false; 044 } 045 046 public SignaturePolicyId getSignaturePolicyId() 047 { 048 return signaturePolicyId; 049 } 050 051 public boolean isSignaturePolicyImplied() 052 { 053 return isSignaturePolicyImplied; 054 } 055 056 /** 057 * <pre> 058 * SignaturePolicyIdentifier ::= CHOICE{ 059 * SignaturePolicyId SignaturePolicyId, 060 * SignaturePolicyImplied SignaturePolicyImplied } 061 * 062 * SignaturePolicyImplied ::= NULL 063 * </pre> 064 */ 065 public ASN1Primitive toASN1Primitive() 066 { 067 if (isSignaturePolicyImplied) 068 { 069 return DERNull.INSTANCE; 070 } 071 else 072 { 073 return signaturePolicyId.toASN1Primitive(); 074 } 075 } 076}