commit 9c72536d912d701f9042148a7bc089e6ee33f4b9 Author: Zack Weinberg zackw@panix.com Date: Wed Feb 29 17:38:50 2012 -0800
Clean iostreams out of the base64 code. --- src/audit-globals.sh | 4 -- src/steg/b64cookies.cc | 3 ++ src/steg/b64cookies.h | 16 ++------- src/steg/b64decode.h | 72 ++++++++++++++++---------------------- src/steg/b64encode.h | 89 ++++++++++++++++++++--------------------------- src/steg/http.cc | 1 + 6 files changed, 75 insertions(+), 110 deletions(-)
diff --git a/src/audit-globals.sh b/src/audit-globals.sh index dbff414..e1de07d 100644 --- a/src/audit-globals.sh +++ b/src/audit-globals.sh @@ -42,15 +42,11 @@ sed ' /^util the_evdns_base$/d
# These are grandfathered; they need to be removed. - /^steg/b64cookies std::__ioinit$/d - /^steg/b64decode std::__ioinit$/d - /^steg/b64encode std::__ioinit$/d /^steg/embed embed_init$/d /^steg/embed embed_num_traces$/d /^steg/embed embed_traces$/d /^steg/http has_peer_name$/d /^steg/http peername$/d - /^steg/http std::__ioinit$/d /^steg/payloads payload_count$/d /^steg/payloads payload_hdrs$/d /^steg/payloads payloads$/d diff --git a/src/steg/b64cookies.cc b/src/steg/b64cookies.cc index 975c201..d0268be 100644 --- a/src/steg/b64cookies.cc +++ b/src/steg/b64cookies.cc @@ -1,5 +1,8 @@
#include "b64cookies.h" + +#include <stdio.h> +#include <stdlib.h> #include <string.h>
int unwrap_b64_cookie(char* inbuf, char* outbuf, int buflen) { diff --git a/src/steg/b64cookies.h b/src/steg/b64cookies.h index d0c6e6d..2ce40f4 100644 --- a/src/steg/b64cookies.h +++ b/src/steg/b64cookies.h @@ -1,20 +1,10 @@ #ifndef _B64_COOKIES_H #define _B64_COOKIES_H
- - -#include <stdio.h> -#include <strings.h> -#include <stdlib.h> -#include <string.h> -#include "b64encode.h" -#include "b64decode.h" - -int unwrap_b64_cookie( char* inbuf, char* outbuf, int buflen); -int gen_b64_cookie_field( char* outbuf, char* data, int datalen); -int gen_one_b64cookie( char* outbuf, int& cookielen, char* data, int datalen); +int unwrap_b64_cookie(char* inbuf, char* outbuf, int buflen); +int gen_b64_cookie_field(char* outbuf, char* data, int datalen); +int gen_one_b64cookie(char* outbuf, int& cookielen, char* data, int datalen); void sanitize_b64(char* input, int len); void desanitize_b64(char* input, int len);
- #endif diff --git a/src/steg/b64decode.h b/src/steg/b64decode.h index 9514c87..c2388b6 100755 --- a/src/steg/b64decode.h +++ b/src/steg/b64decode.h @@ -8,59 +8,47 @@ For details, see http://sourceforge.net/projects/libb64 #ifndef BASE64_CDECODE_H #define BASE64_CDECODE_H
-#include <iostream> #include "b64encode.h"
-typedef enum +enum base64_decodestep { - step_a, step_b, step_c, step_d -} base64_decodestep; + step_a, step_b, step_c, step_d +};
-typedef struct +struct base64_decodestate { - base64_decodestep step; - char plainchar; -} base64_decodestate; + base64_decodestep step; + char plainchar; +};
void base64_init_decodestate(base64_decodestate* state_in); - int base64_decode_value(char value_in); - -int base64_decode_block(const char* code_in, const int length_in, char* plaintext_out, base64_decodestate* state_in); - - - +int base64_decode_block(const char* code_in, const int length_in, + char* plaintext_out, base64_decodestate* state_in);
namespace base64 { - - struct decoder - { - base64_decodestate _state; - int _buffersize; - - decoder(int buffersize_in = BUFFERSIZE) - : _buffersize(buffersize_in) - { - } - - int decode(char value_in) - { - - return base64_decode_value(value_in); - } - - int decode(const char* code_in, const int length_in, char* plaintext_out) - { - base64_init_decodestate(&_state); - return base64_decode_block(code_in, length_in, plaintext_out, &_state); - } - - }; - + struct decoder + { + base64_decodestate _state; + int _buffersize; + + decoder(int buffersize_in = BUFFERSIZE) + : _buffersize(buffersize_in) + { + } + + int decode(char value_in) + { + return base64_decode_value(value_in); + } + + int decode(const char* code_in, const int length_in, char* plaintext_out) + { + base64_init_decodestate(&_state); + return base64_decode_block(code_in, length_in, plaintext_out, &_state); + } + }; } // namespace base64
- - - #endif /* BASE64_CDECODE_H */ diff --git a/src/steg/b64encode.h b/src/steg/b64encode.h index be8c666..4831d74 100755 --- a/src/steg/b64encode.h +++ b/src/steg/b64encode.h @@ -1,75 +1,62 @@ /* -cencode.h - c header for a base64 encoding algorithm + cencode.h - c header for a base64 encoding algorithm
-This is part of the libb64 project, and has been placed in the public domain. -For details, see http://sourceforge.net/projects/libb64 + This is part of the libb64 project, and has been placed in the public domain. + For details, see http://sourceforge.net/projects/libb64 */
#ifndef BASE64_CENCODE_H #define BASE64_CENCODE_H -#include <iostream>
- -typedef enum +enum base64_encodestep { - step_A, step_B, step_C -} base64_encodestep; + step_A, step_B, step_C +};
-typedef struct +struct base64_encodestate { - base64_encodestep step; - char result; - int stepcount; -} base64_encodestate; + base64_encodestep step; + char result; + int stepcount; +};
void base64_init_encodestate(base64_encodestate* state_in); - char base64_encode_value(char value_in); - -int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in); +int base64_encode_block(const char* plaintext_in, int length_in, + char* code_out, base64_encodestate* state_in);
int base64_encode_blockend(char* code_out, base64_encodestate* state_in);
- - - - static int BUFFERSIZE = 16777216;
namespace base64 { - - struct encoder - { - base64_encodestate _state; - int _buffersize; - - encoder(int buffersize_in = BUFFERSIZE) - : _buffersize(buffersize_in) - {} - - int encode(char value_in) - { - - return base64_encode_value(value_in); - } - - int encode(const char* code_in, const int length_in, char* plaintext_out) - { - base64_init_encodestate(&_state); - - return base64_encode_block(code_in, length_in, plaintext_out, &_state); - } - - int encode_end(char* plaintext_out) - { - return base64_encode_blockend(plaintext_out, &_state); - } - - }; + struct encoder + { + base64_encodestate _state; + int _buffersize; + + encoder(int buffersize_in = BUFFERSIZE) + : _buffersize(buffersize_in) + {} + + int encode(char value_in) + { + return base64_encode_value(value_in); + } + + int encode(const char* code_in, const int length_in, char* plaintext_out) + { + base64_init_encodestate(&_state); + return base64_encode_block(code_in, length_in, plaintext_out, &_state); + } + + int encode_end(char* plaintext_out) + { + return base64_encode_blockend(plaintext_out, &_state); + } + };
} // namespace base64
- - #endif /* BASE64_CENCODE_H */ diff --git a/src/steg/http.cc b/src/steg/http.cc index 302571d..06ef332 100644 --- a/src/steg/http.cc +++ b/src/steg/http.cc @@ -40,6 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "swfSteg.h" #include "pdfSteg.h" #include "jsSteg.h" +#include "b64decode.h" #include "b64cookies.h"
#include <event2/buffer.h>
tor-commits@lists.torproject.org