OtherRevVals
using Org.BouncyCastle.Utilities;
using System;
namespace Org.BouncyCastle.Asn1.Esf
{
    public class OtherRevVals : Asn1Encodable
    {
        private readonly DerObjectIdentifier otherRevValType;
        private readonly Asn1Object otherRevVals;
        public DerObjectIdentifier OtherRevValType => otherRevValType;
        public Asn1Object OtherRevValsObject => otherRevVals;
        public static OtherRevVals GetInstance(object obj)
        {
            if (obj == null || obj is OtherRevVals)
                return (OtherRevVals)obj;
            if (obj is Asn1Sequence)
                return new OtherRevVals((Asn1Sequence)obj);
            throw new ArgumentException("Unknown object in 'OtherRevVals' factory: " + Platform.GetTypeName(obj), "obj");
        }
        private OtherRevVals(Asn1Sequence seq)
        {
            if (seq == null)
                throw new ArgumentNullException("seq");
            if (seq.Count != 2)
                throw new ArgumentException("Bad sequence size: " + seq.Count.ToString(), "seq");
            otherRevValType = (DerObjectIdentifier)seq[0].ToAsn1Object();
            otherRevVals = seq[1].ToAsn1Object();
        }
        public OtherRevVals(DerObjectIdentifier otherRevValType, Asn1Encodable otherRevVals)
        {
            if (otherRevValType == null)
                throw new ArgumentNullException("otherRevValType");
            if (otherRevVals == null)
                throw new ArgumentNullException("otherRevVals");
            this.otherRevValType = otherRevValType;
            this.otherRevVals = otherRevVals.ToAsn1Object();
        }
        public override Asn1Object ToAsn1Object()
        {
            return new DerSequence(otherRevValType, otherRevVals);
        }
    }
}