aboutsummaryrefslogtreecommitdiffstats
path: root/src/codec/base64
diff options
context:
space:
mode:
Diffstat (limited to 'src/codec/base64')
-rw-r--r--src/codec/base64/b64_char.cpp47
-rw-r--r--src/codec/base64/base64.cpp228
-rw-r--r--src/codec/base64/base64.h94
-rw-r--r--src/codec/base64/info.txt13
4 files changed, 0 insertions, 382 deletions
diff --git a/src/codec/base64/b64_char.cpp b/src/codec/base64/b64_char.cpp
deleted file mode 100644
index e5722a0fd..000000000
--- a/src/codec/base64/b64_char.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-* Base64 Codec Character Tables
-* (C) 1999-2008 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/base64.h>
-
-namespace Botan {
-
-/*
-* Base64 Encoder Lookup Table
-*/
-const byte Base64_Encoder::BIN_TO_BASE64[64] = {
-0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D,
-0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
-0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A,
-0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2B, 0x2F };
-
-/*
-* Base64 Decoder Lookup Table
-*/
-const byte Base64_Decoder::BASE64_TO_BIN[256] = {
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x3E, 0x80, 0x80, 0x80, 0x3F, 0x34, 0x35, 0x36, 0x37,
-0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
-0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,
-0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D,
-0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
-
-}
diff --git a/src/codec/base64/base64.cpp b/src/codec/base64/base64.cpp
deleted file mode 100644
index 9110dc57e..000000000
--- a/src/codec/base64/base64.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
-* Base64 Encoder/Decoder
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/base64.h>
-#include <botan/charset.h>
-#include <botan/exceptn.h>
-#include <algorithm>
-
-namespace Botan {
-
-/*
-* Base64_Encoder Constructor
-*/
-Base64_Encoder::Base64_Encoder(bool breaks, u32bit length, bool t_n) :
- line_length(breaks ? length : 0), trailing_newline(t_n)
- {
- in.resize(48);
- out.resize(4);
-
- counter = position = 0;
- }
-
-/*
-* Base64 Encoding Operation
-*/
-void Base64_Encoder::encode(const byte in[3], byte out[4])
- {
- out[0] = BIN_TO_BASE64[((in[0] & 0xFC) >> 2)];
- out[1] = BIN_TO_BASE64[((in[0] & 0x03) << 4) | (in[1] >> 4)];
- out[2] = BIN_TO_BASE64[((in[1] & 0x0F) << 2) | (in[2] >> 6)];
- out[3] = BIN_TO_BASE64[((in[2] & 0x3F) )];
- }
-
-/*
-* Encode and send a block
-*/
-void Base64_Encoder::encode_and_send(const byte block[], u32bit length)
- {
- for(u32bit j = 0; j != length; j += 3)
- {
- encode(block + j, out);
- do_output(out, 4);
- }
- }
-
-/*
-* Handle the output
-*/
-void Base64_Encoder::do_output(const byte input[], u32bit length)
- {
- if(line_length == 0)
- send(input, length);
- else
- {
- u32bit remaining = length, offset = 0;
- while(remaining)
- {
- u32bit sent = std::min(line_length - counter, remaining);
- send(input + offset, sent);
- counter += sent;
- remaining -= sent;
- offset += sent;
- if(counter == line_length)
- {
- send('\n');
- counter = 0;
- }
- }
- }
- }
-
-/*
-* Convert some data into Base64
-*/
-void Base64_Encoder::write(const byte input[], u32bit length)
- {
- in.copy(position, input, length);
- if(position + length >= in.size())
- {
- encode_and_send(in, in.size());
- input += (in.size() - position);
- length -= (in.size() - position);
- while(length >= in.size())
- {
- encode_and_send(input, in.size());
- input += in.size();
- length -= in.size();
- }
- in.copy(input, length);
- position = 0;
- }
- position += length;
- }
-
-/*
-* Flush buffers
-*/
-void Base64_Encoder::end_msg()
- {
- u32bit start_of_last_block = 3 * (position / 3),
- left_over = position % 3;
- encode_and_send(in, start_of_last_block);
-
- if(left_over)
- {
- SecureBuffer<byte, 3> remainder(in + start_of_last_block, left_over);
-
- encode(remainder, out);
-
- u32bit empty_bits = 8 * (3 - left_over), index = 4 - 1;
- while(empty_bits >= 8)
- {
- out[index--] = '=';
- empty_bits -= 6;
- }
-
- do_output(out, 4);
- }
-
- if(trailing_newline || (counter && line_length))
- send('\n');
-
- counter = position = 0;
- }
-
-/*
-* Base64_Decoder Constructor
-*/
-Base64_Decoder::Base64_Decoder(Decoder_Checking c) : checking(c)
- {
- in.resize(48);
- out.resize(3);
- position = 0;
- }
-
-/*
-* Check if a character is a valid Base64 char
-*/
-bool Base64_Decoder::is_valid(byte in)
- {
- return (BASE64_TO_BIN[in] != 0x80);
- }
-
-/*
-* Base64 Decoding Operation
-*/
-void Base64_Decoder::decode(const byte in[4], byte out[3])
- {
- out[0] = ((BASE64_TO_BIN[in[0]] << 2) | (BASE64_TO_BIN[in[1]] >> 4));
- out[1] = ((BASE64_TO_BIN[in[1]] << 4) | (BASE64_TO_BIN[in[2]] >> 2));
- out[2] = ((BASE64_TO_BIN[in[2]] << 6) | (BASE64_TO_BIN[in[3]]));
- }
-
-/*
-* Decode and send a block
-*/
-void Base64_Decoder::decode_and_send(const byte block[], u32bit length)
- {
- for(u32bit j = 0; j != length; j += 4)
- {
- decode(block + j, out);
- send(out, 3);
- }
- }
-
-/*
-* Handle processing an invalid character
-*/
-void Base64_Decoder::handle_bad_char(byte c)
- {
- if(c == '=' || checking == NONE)
- return;
-
- if((checking == IGNORE_WS) && Charset::is_space(c))
- return;
-
- throw Decoding_Error(
- std::string("Base64_Decoder: Invalid base64 character '") +
- static_cast<char>(c) + "'"
- );
- }
-
-/*
-* Convert some data from Base64
-*/
-void Base64_Decoder::write(const byte input[], u32bit length)
- {
- for(u32bit j = 0; j != length; ++j)
- {
- if(is_valid(input[j]))
- in[position++] = input[j];
- else
- handle_bad_char(input[j]);
-
- if(position == in.size())
- {
- decode_and_send(in, in.size());
- position = 0;
- }
- }
- }
-
-/*
-* Flush buffers
-*/
-void Base64_Decoder::end_msg()
- {
- if(position != 0)
- {
- u32bit start_of_last_block = 4 * (position / 4),
- left_over = position % 4;
- decode_and_send(in, start_of_last_block);
-
- if(left_over)
- {
- SecureBuffer<byte, 4> remainder(in + start_of_last_block, left_over);
- decode(remainder, out);
- send(out, ((left_over == 1) ? (1) : (left_over - 1)));
- }
- }
- position = 0;
- }
-
-}
diff --git a/src/codec/base64/base64.h b/src/codec/base64/base64.h
deleted file mode 100644
index aca02da14..000000000
--- a/src/codec/base64/base64.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-* Base64 Encoder/Decoder
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#ifndef BOTAN_BASE64_H__
-#define BOTAN_BASE64_H__
-
-#include <botan/filter.h>
-
-namespace Botan {
-
-/**
-* This class represents a Base64 encoder.
-*/
-class BOTAN_DLL Base64_Encoder : public Filter
- {
- public:
- static void encode(const byte in[3], byte out[4]);
-
- /**
- * Input a part of a message to the encoder.
- * @param input the message to input as a byte array
- * @param length the length of the byte array input
- */
- void write(const byte input[], u32bit length);
-
- /**
- * Inform the Encoder that the current message shall be closed.
- */
- void end_msg();
-
- /**
- * Create a base64 encoder.
- * @param breaks whether to use line breaks in the Streamcipheroutput
- * @param length the length of the lines of the output
- * @param t_n whether to use a trailing newline
- */
- Base64_Encoder(bool breaks = false, u32bit length = 72,
- bool t_n = false);
- private:
- void encode_and_send(const byte[], u32bit);
- void do_output(const byte[], u32bit);
- static const byte BIN_TO_BASE64[64];
-
- const u32bit line_length;
- const bool trailing_newline;
- SecureVector<byte> in, out;
- u32bit position, counter;
- };
-
-/**
-* This object represents a Base64 decoder.
-*/
-class BOTAN_DLL Base64_Decoder : public Filter
- {
- public:
- static void decode(const byte input[4], byte output[3]);
-
- static bool is_valid(byte);
-
- /**
- * Input a part of a message to the decoder.
- * @param input the message to input as a byte array
- * @param length the length of the byte array input
- */
- void write(const byte input[], u32bit length);
-
- /**
- * Inform the Encoder that the current message shall be closed.
- */
- void end_msg();
-
- /**
- * Create a base64 encoder.
- * @param checking the type of checking that shall be performed by
- * the decoder
- */
- Base64_Decoder(Decoder_Checking checking = NONE);
- private:
- void decode_and_send(const byte[], u32bit);
- void handle_bad_char(byte);
- static const byte BASE64_TO_BIN[256];
-
- const Decoder_Checking checking;
- SecureVector<byte> in, out;
- u32bit position;
- };
-
-}
-
-#endif
diff --git a/src/codec/base64/info.txt b/src/codec/base64/info.txt
deleted file mode 100644
index 1d36b948e..000000000
--- a/src/codec/base64/info.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-define BASE64_CODEC
-
-load_on auto
-
-<add>
-base64.cpp
-b64_char.cpp
-base64.h
-</add>
-
-<requires>
-filters
-</requires>