internal void Encode(AsnWriter writer, Asn1Tag tag) { writer.PushSequence(tag); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 0)); writer.WriteInteger(AuthenticatorVersionNumber); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 0)); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 1)); writer.WriteCharacterString(UniversalTagNumber.GeneralString, Realm); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 1)); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 2)); CName?.Encode(writer); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 2)); if (Asn1Extension.HasValue(Checksum)) { writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 3)); Checksum?.Encode(writer); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 3)); } writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 4)); writer.WriteInteger(CuSec); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 4)); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 5)); writer.WriteGeneralizedTime(CTime); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 5)); if (Asn1Extension.HasValue(Subkey)) { writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 6)); Subkey?.Encode(writer); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 6)); } if (Asn1Extension.HasValue(SequenceNumber)) { writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 7)); writer.WriteInteger(SequenceNumber.Value); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 7)); } if (Asn1Extension.HasValue(AuthorizationData)) { writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 8)); writer.PushSequence(); for (int i = 0; i < AuthorizationData.Length; i++) { AuthorizationData[i]?.Encode(writer); } writer.PopSequence(); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 8)); } writer.PopSequence(tag); }
internal void Encode(AsnWriter writer, Asn1Tag tag) { writer.PushSequence(tag); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 0)); UserName?.Encode(writer); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 0)); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 1)); writer.WriteCharacterString(UniversalTagNumber.GeneralString, UserRealm); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 1)); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 2)); Checksum?.Encode(writer); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 2)); writer.PushSequence(new Asn1Tag(TagClass.ContextSpecific, 3)); writer.WriteCharacterString(UniversalTagNumber.GeneralString, AuthPackage); writer.PopSequence(new Asn1Tag(TagClass.ContextSpecific, 3)); writer.PopSequence(tag); }