public Base64Converter(Encoding encoding) { var charSet = new Base64EncodedCharacterSet(encoding); _encoder = new Base64BufferEncoder(charSet); _decoder = new Base64BufferDecoder(charSet); }
public Base64CharacterMap(Base64EncodedCharacterSet charSet) { _map = new byte[123]; var chars = charSet.Chars; for (byte i = 0; i < chars.Length; i++) { _map[chars[i]] = i; } }
public static IBase64CharacterMap Create(Base64EncodedCharacterSet charSet) { if (charSet.CharSize == 1) { return(new Base64CharacterMap(charSet)); } if (charSet.CharSize == 2) { return(new Base64TwoCharacterMap(charSet)); } if (charSet.CharSize == 4) { return(new Base64FourCharacterMap(charSet)); } throw new NotSupportedException($"Encodings with character size {charSet.CharSize} is currently not supported."); }
public Base64BufferEncoder(Base64EncodedCharacterSet charSet) { _chars = charSet.Chars; _paddingChar = charSet.PaddingChar; _charSize = charSet.CharSize; }
public Base64BufferDecoder(Base64EncodedCharacterSet charSet) { _paddingChar = charSet.PaddingChar; _charSize = charSet.CharSize; _map = Base64CharacterMap.Create(charSet); }