public static bool TryCopyIA5String( this AsnReader reader, Span <char> destination, out int charsWritten) { return(reader.TryCopyCharacterString( UniversalTagNumber.IA5String, destination, out charsWritten)); }
private static void TryCopyUTF8String_Throws(PublicEncodingRules ruleSet, byte[] inputData) { char[] outputData = new char[inputData.Length + 1]; outputData[0] = 'a'; int bytesWritten = -1; AsnReader reader = new AsnReader(inputData, (AsnEncodingRules)ruleSet); Assert.Throws <CryptographicException>( () => reader.TryCopyCharacterString(UniversalTagNumber.UTF8String, outputData, out bytesWritten)); Assert.Equal(-1, bytesWritten); Assert.Equal('a', outputData[0]); }
public static void TryCopyT61String( PublicEncodingRules ruleSet, string inputHex, string expectedValue) { byte[] inputData = inputHex.HexToByteArray(); char[] output = new char[expectedValue.Length]; AsnReader reader = new AsnReader(inputData, (AsnEncodingRules)ruleSet); bool copied; int charsWritten; if (output.Length > 0) { output[0] = 'a'; copied = reader.TryCopyCharacterString( UniversalTagNumber.T61String, output.AsSpan(0, expectedValue.Length - 1), out charsWritten); Assert.False(copied, "reader.TryCopyT61String - too short"); Assert.Equal(0, charsWritten); Assert.Equal('a', output[0]); } copied = reader.TryCopyCharacterString( UniversalTagNumber.T61String, output, out charsWritten); Assert.True(copied, "reader.TryCopyT61String"); string actualValue = new string(output, 0, charsWritten); Assert.Equal(expectedValue, actualValue); }