// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.asn1.x509;

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.ASN1Object;

public class AltSignatureAlgorithm extends ASN1Object
{
    private final AlgorithmIdentifier algorithm;
    
    public static AltSignatureAlgorithm getInstance(final ASN1TaggedObject asn1TaggedObject, final boolean b) {
        return getInstance(AlgorithmIdentifier.getInstance(asn1TaggedObject, b));
    }
    
    public static AltSignatureAlgorithm getInstance(final Object o) {
        if (o instanceof AltSignatureAlgorithm) {
            return (AltSignatureAlgorithm)o;
        }
        if (o != null) {
            return new AltSignatureAlgorithm(AlgorithmIdentifier.getInstance(o));
        }
        return null;
    }
    
    public static AltSignatureAlgorithm fromExtensions(final Extensions extensions) {
        return getInstance(Extensions.getExtensionParsedValue(extensions, Extension.altSignatureAlgorithm));
    }
    
    public AltSignatureAlgorithm(final AlgorithmIdentifier algorithm) {
        this.algorithm = algorithm;
    }
    
    public AltSignatureAlgorithm(final ASN1ObjectIdentifier asn1ObjectIdentifier) {
        this(asn1ObjectIdentifier, null);
    }
    
    public AltSignatureAlgorithm(final ASN1ObjectIdentifier asn1ObjectIdentifier, final ASN1Encodable asn1Encodable) {
        this.algorithm = new AlgorithmIdentifier(asn1ObjectIdentifier, asn1Encodable);
    }
    
    public AlgorithmIdentifier getAlgorithm() {
        return this.algorithm;
    }
    
    @Override
    public ASN1Primitive toASN1Primitive() {
        return this.algorithm.toASN1Primitive();
    }
}
