public static DSTU4145Params GetInstance(Object obj) { if (obj is DSTU4145Params) { return((DSTU4145Params)obj); } if (obj != null) { Asn1Sequence seq = Asn1Sequence.GetInstance(obj); DSTU4145Params paramsValue; if (seq.GetObjectAt(0) is DerObjectIdentifier) { paramsValue = new DSTU4145Params(DerObjectIdentifier.GetInstance(seq.GetObjectAt(0))); } else { paramsValue = new DSTU4145Params(DSTU4145ECBinary.GetInstance(seq.GetObjectAt(0))); } if (seq.Size == 2) { paramsValue.dke = Asn1OctetString.GetInstance(seq.GetObjectAt(1)).GetOctets(); if (paramsValue.dke.Length != DSTU4145Params.DEFAULT_DKE.Length) { throw new ArgumentException("object parse error"); } } return(paramsValue); } throw new ArgumentException("object parse error"); }
private DSTU4145ECBinary(Asn1Sequence seq) { int index = 0; if (seq.GetObjectAt(index) is Asn1TaggedObject) { Asn1TaggedObject taggedVersion = (Asn1TaggedObject)seq.GetObjectAt(index); if (taggedVersion.IsExplicit() && 0 == taggedVersion.TagNo) { version = DerInteger.GetInstance(taggedVersion.GetObject()).Value; index++; } else { throw new ArgumentException("object parse error"); } } f = DSTU4145BinaryField.GetInstance(seq.GetObjectAt(index)); index++; a = DerInteger.GetInstance(seq.GetObjectAt(index)); index++; b = Asn1OctetString.GetInstance(seq.GetObjectAt(index)); index++; n = DerInteger.GetInstance(seq.GetObjectAt(index)); index++; bp = Asn1OctetString.GetInstance(seq.GetObjectAt(index)); }
private DSTU4145BinaryField(Asn1Sequence seq) { m = DerInteger.GetInstance(seq.GetObjectAt(0)).PositiveValue.IntValue; if (seq.GetObjectAt(1) is DerInteger) { k = ((DerInteger)seq.GetObjectAt(1)).PositiveValue.IntValue; } else if (seq.GetObjectAt(1) is Asn1Sequence) { Asn1Sequence coefs = Asn1Sequence.GetInstance(seq.GetObjectAt(1)); k = DerInteger.GetInstance(coefs.GetObjectAt(0)).PositiveValue.IntValue; j = DerInteger.GetInstance(coefs.GetObjectAt(1)).PositiveValue.IntValue; l = DerInteger.GetInstance(coefs.GetObjectAt(2)).PositiveValue.IntValue; } else { throw new ArgumentException("object parse error"); } }