Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryToBase64Chars()

static unsafe bool System.Convert.TryToBase64Chars ( ReadOnlySpan< byte > bytes,
Span< char > chars,
out int charsWritten,
Base64FormattingOptions options = Base64FormattingOptions::None )
inlinestatic

Definition at line 2799 of file Convert.cs.

2800 {
2801 if (options < Base64FormattingOptions.None || options > Base64FormattingOptions.InsertLineBreaks)
2802 {
2803 throw new ArgumentException(SR.Format(SR.Arg_EnumIllegalVal, (int)options), "options");
2804 }
2805 if (bytes.Length == 0)
2806 {
2807 charsWritten = 0;
2808 return true;
2809 }
2810 bool insertLineBreaks = options == Base64FormattingOptions.InsertLineBreaks;
2811 int num = ToBase64_CalculateAndValidateOutputLength(bytes.Length, insertLineBreaks);
2812 if (num > chars.Length)
2813 {
2814 charsWritten = 0;
2815 return false;
2816 }
2817 fixed (char* outChars = &MemoryMarshal.GetReference(chars))
2818 {
2819 fixed (byte* inData = &MemoryMarshal.GetReference(bytes))
2820 {
2821 charsWritten = ConvertToBase64Array(outChars, inData, 0, bytes.Length, insertLineBreaks);
2822 return true;
2823 }
2824 }
2825 }
static int ToBase64_CalculateAndValidateOutputLength(int inputLength, bool insertLineBreaks)
Definition Convert.cs:2881
static unsafe int ConvertToBase64Array(char *outChars, byte *inData, int offset, int length, bool insertLineBreaks)
Definition Convert.cs:2827

References System.SR.Arg_EnumIllegalVal, System.bytes, System.chars, System.Convert.ConvertToBase64Array(), System.SR.Format(), System.options, and System.Convert.ToBase64_CalculateAndValidateOutputLength().

Referenced by System.Security.Cryptography.PemEncoding.TryWrite(), and System.Security.Cryptography.XmlKeyHelper.WriteCryptoBinary().