public static string ToBase64Url()

in src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Extensions/BytesExtensions.cs [15:44]


        public static string ToBase64Url(this byte[] bytes)
        {
            string bytesBase64 = Convert.ToBase64String(bytes);

            int indexOfEquals = bytesBase64.IndexOf("=");

            // Skip the optional padding of '=' characters based on the Base64Url spec if any are present from the Base64 conversion
            int stringBuilderCapacity = indexOfEquals != -1 ? indexOfEquals : bytesBase64.Length;

            StringBuilder stringBuilder = new StringBuilder(stringBuilderCapacity);

            // Construct Base64URL string by replacing characters in Base64 conversion that are not URL safe
            for (int i = 0; i < stringBuilderCapacity; i++)
            {
                if (bytesBase64[i] == '+')
                {
                    stringBuilder.Append('-');
                }
                else if (bytesBase64[i] == '/')
                {
                    stringBuilder.Append('_');
                }
                else
                {
                    stringBuilder.Append(bytesBase64[i]);
                }
            }

            return stringBuilder.ToString();
        }