public SignerLocation( DerUtf8String countryName, DerUtf8String localityName, Asn1Sequence postalAddress) { if (postalAddress != null && postalAddress.Count > 6) { throw new ArgumentException("postal address must contain less than 6 strings"); } if (countryName != null) { this.countryName = DerUtf8String.GetInstance(countryName.ToAsn1Object()); } if (localityName != null) { this.localityName = DerUtf8String.GetInstance(localityName.ToAsn1Object()); } if (postalAddress != null) { this.postalAddress = (Asn1Sequence) postalAddress.ToAsn1Object(); } }
public SignerLocation( Asn1Sequence seq) { foreach (Asn1TaggedObject obj in seq) { switch (obj.TagNo) { case 0: this.countryName = DerUtf8String.GetInstance(obj, true); break; case 1: this.localityName = DerUtf8String.GetInstance(obj, true); break; case 2: bool isExplicit = obj.IsExplicit(); // handle erroneous implicitly tagged sequences this.postalAddress = Asn1Sequence.GetInstance(obj, isExplicit); if (postalAddress != null && postalAddress.Count > 6) throw new ArgumentException("postal address must contain less than 6 strings"); break; default: throw new ArgumentException("illegal tag"); } } }