Example #1
0
        public int GetMaxDecodedLength(int encodedLength)
        {
            if ((uint)encodedLength >= int.MaxValue)
            {
                goto InvalidData;
            }

            int numPaddingChars = GetNumBase64PaddingCharsToAddForDecode(encodedLength);

            if (numPaddingChars == 3)
            {
                goto InvalidData;
            }

            int base64Len = encodedLength + numPaddingChars;

            if (base64Len < 0)    // overflow
            {
                goto InvalidData;
            }

            Debug.Assert(base64Len % 4 == 0, "Invariant: Array length must be a multiple of 4.");

            return(((base64Len >> 2) * 3) - numPaddingChars);

InvalidData:
            ThrowHelper.ThrowFormatException_MalformdedInput(encodedLength);
            return(0);
        }