System.ArgumentOutOfRangeException при использовании записи string в AsnWriter с UniversalTagNumber.GeneralString
возникла проблема
Я пытаюсь создать KerberosString в формате ASN.1, используя System.Formats.Asn1.AsnWriter. Согласно RFC 4120, KerberosString определяется как GeneralString, ограниченный символами IA5String.
var writer = new AsnWriter(AsnEncodingRules.DER);
string myGeneralStringData = "Hello, GeneralString!";
writer.WriteCharacterString(UniversalTagNumber.GeneralString, myGeneralStringData);
byte[] encodedData = writer.Encode();
Этот код вызывает ошибку:
System.ArgumentOutOfRangeException
HResult=0x80131502
Источник = System.Formats.Asn1
Трассировка стека:
в System.Formats.Asn1.AsnCharacterStringEncodings.GetEncoding(UniversalTagNumber encodingType)
в System.Formats.Asn1.AsnWriter.WriteCharacterString(UniversalTagNumber encodingType, ReadOnlySpan`1 str, Nullable`1 tag)
в System.Formats.Asn1.AsnWriter.WriteCharacterString(UniversalTagNumber encodingType, String value, Nullable`1 tag)
в Test.Program.<Main>d__0.MoveNext() в C:\Users\user\Desktop\Test\Test\Program.cs:строка 63
Если использовать UniversalTagNumber.IA5String вместо GeneralString , все запускается без ошибок. Проблема заключается в том , что по спецификации говорится , что нужно использовать GeneralString.
Хотел бы понять, как решить эту проблему