#include "slipBio.h"
+#include <unistd.h>
+
#include <iostream>
-#include <unistd.h>
+#define BUFFER_SIZE 8192
char hexDigit( char c ) {
if( c < 0 ) {
}
std::string toHex( const char* buf, int len ) {
- char* c = ( char* ) malloc( len * 2 );
-
- if( !c ) {
- return "<malloc fail>";
- }
-
- std::shared_ptr<char> mem = std::shared_ptr<char>( c, free );
+ std::string data = "000000";
for( int i = 0; i < len; i++ ) {
- c[i * 2] = hexDigit( ( buf[i] >> 4 ) & 0xF );
- c[i * 2 + 1] = hexDigit( buf[i] & 0xF );
+ data.append( 1, ' ' );
+ data.append( 1, hexDigit( ( buf[i] >> 4 ) & 0xF ) );
+ data.append( 1, hexDigit( buf[i] & 0xF ) );
}
- return std::string( mem.get(), len * 2 );
+ return data;
}
SlipBIO::SlipBIO() {
- this->buffer = std::vector<char>( 4096 );
+ this->buffer = std::vector<char>( BUFFER_SIZE );
this->decodeTarget = 0;
this->decodePos = 0;
this->rawPos = 0;
+ this->failed = false;
}
void SlipBIO::setTarget( std::shared_ptr<OpensslBIO> target ) {
SlipBIO::SlipBIO( std::shared_ptr<OpensslBIO> target ) {
this->target = target;
- this->buffer = std::vector<char>( 4096 );
+
+ this->buffer = std::vector<char>( BUFFER_SIZE );
this->decodeTarget = 0;
this->decodePos = 0;
this->rawPos = 0;
SlipBIO::~SlipBIO() {}
int SlipBIO::write( const char* buf, int num ) {
+ std::cout << "Out: " << toHex( buf, num ) << std::endl;
int badOnes = 0;
for( int i = 0; i < num; i++ ) {