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.

Хотел бы понять, как решить эту проблему


Ответы (0 шт):