<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />

Gost28147Parameters

using System; namespace Org.BouncyCastle.Asn1.CryptoPro { public class Gost28147Parameters : Asn1Encodable { private readonly Asn1OctetString m_iv; private readonly DerObjectIdentifier m_encryptionParamSet; public Asn1OctetString IV => m_iv; public DerObjectIdentifier EncryptionParamSet => m_encryptionParamSet; public static Gost28147Parameters GetInstance(object obj) { if (obj == null) return null; Gost28147Parameters gost28147Parameters = obj as Gost28147Parameters; if (gost28147Parameters != null) return gost28147Parameters; return new Gost28147Parameters(Asn1Sequence.GetInstance(obj)); } public static Gost28147Parameters GetInstance(Asn1TaggedObject obj, bool explicitly) { return new Gost28147Parameters(Asn1Sequence.GetInstance(obj, explicitly)); } public static Gost28147Parameters GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new Gost28147Parameters(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private Gost28147Parameters(Asn1Sequence seq) { int count = seq.Count; if (count != 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_iv = Asn1OctetString.GetInstance(seq[0]); m_encryptionParamSet = DerObjectIdentifier.GetInstance(seq[1]); } public Gost28147Parameters(Asn1OctetString iv, DerObjectIdentifier encryptionParamSet) { if (iv == null) throw new ArgumentNullException("iv"); m_iv = iv; if (encryptionParamSet == null) throw new ArgumentNullException("encryptionParamSet"); m_encryptionParamSet = encryptionParamSet; } public override Asn1Object ToAsn1Object() { return new DerSequence(m_iv, m_encryptionParamSet); } } }