diff options
Diffstat (limited to 'libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/esf/SignaturePolicyIdentifier.java')
-rw-r--r-- | libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/esf/SignaturePolicyIdentifier.java | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/esf/SignaturePolicyIdentifier.java b/libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/esf/SignaturePolicyIdentifier.java new file mode 100644 index 000000000..ace0860ce --- /dev/null +++ b/libraries/spongycastle/core/src/main/java/org/spongycastle/asn1/esf/SignaturePolicyIdentifier.java @@ -0,0 +1,76 @@ +package org.spongycastle.asn1.esf; + +import org.spongycastle.asn1.ASN1Null; +import org.spongycastle.asn1.ASN1Object; +import org.spongycastle.asn1.ASN1Primitive; +import org.spongycastle.asn1.BERTags; +import org.spongycastle.asn1.DERNull; + +public class SignaturePolicyIdentifier + extends ASN1Object +{ + private SignaturePolicyId signaturePolicyId; + private boolean isSignaturePolicyImplied; + + public static SignaturePolicyIdentifier getInstance( + Object obj) + { + if (obj instanceof SignaturePolicyIdentifier) + { + return (SignaturePolicyIdentifier)obj; + } + else if (obj instanceof ASN1Null || hasEncodedTagValue(obj, BERTags.NULL)) + { + return new SignaturePolicyIdentifier(); + } + else if (obj != null) + { + return new SignaturePolicyIdentifier(SignaturePolicyId.getInstance(obj)); + } + + return null; + } + + public SignaturePolicyIdentifier() + { + this.isSignaturePolicyImplied = true; + } + + public SignaturePolicyIdentifier( + SignaturePolicyId signaturePolicyId) + { + this.signaturePolicyId = signaturePolicyId; + this.isSignaturePolicyImplied = false; + } + + public SignaturePolicyId getSignaturePolicyId() + { + return signaturePolicyId; + } + + public boolean isSignaturePolicyImplied() + { + return isSignaturePolicyImplied; + } + + /** + * <pre> + * SignaturePolicyIdentifier ::= CHOICE{ + * SignaturePolicyId SignaturePolicyId, + * SignaturePolicyImplied SignaturePolicyImplied } + * + * SignaturePolicyImplied ::= NULL + * </pre> + */ + public ASN1Primitive toASN1Primitive() + { + if (isSignaturePolicyImplied) + { + return DERNull.INSTANCE; + } + else + { + return signaturePolicyId.toASN1Primitive(); + } + } +} |