Const correctness and const-ref in Crypto and elsewhere.

This commit is contained in:
John Hood
2015-12-25 22:18:04 -05:00
parent 13928e9c10
commit 6abd4739de
16 changed files with 46 additions and 46 deletions
+10 -10
View File
@@ -184,14 +184,14 @@ Nonce::Nonce( uint64_t val )
memcpy( bytes + 4, &val_net, 8 );
}
uint64_t Nonce::val( void )
uint64_t Nonce::val( void ) const
{
uint64_t ret;
memcpy( &ret, bytes + 4, 8 );
return be64toh( ret );
}
Nonce::Nonce( char *s_bytes, size_t len )
Nonce::Nonce( const char *s_bytes, size_t len )
{
if ( len != 8 ) {
throw CryptoException( "Nonce representation must be 8 octets long." );
@@ -201,18 +201,18 @@ Nonce::Nonce( char *s_bytes, size_t len )
memcpy( bytes + 4, s_bytes, 8 );
}
Message::Message( char *nonce_bytes, size_t nonce_len,
char *text_bytes, size_t text_len )
Message::Message( const char *nonce_bytes, size_t nonce_len,
const char *text_bytes, size_t text_len )
: nonce( nonce_bytes, nonce_len ),
text( (char *)text_bytes, text_len )
text( text_bytes, text_len )
{}
Message::Message( Nonce s_nonce, string s_text )
Message::Message( const Nonce & s_nonce, const string & s_text )
: nonce( s_nonce ),
text( s_text )
{}
string Session::encrypt( Message plaintext )
const string Session::encrypt( const Message & plaintext )
{
const size_t pt_len = plaintext.text.size();
const int ciphertext_len = pt_len + 16;
@@ -262,13 +262,13 @@ string Session::encrypt( Message plaintext )
return plaintext.nonce.cc_str() + text;
}
Message Session::decrypt( string ciphertext )
const Message Session::decrypt( const string & ciphertext )
{
if ( ciphertext.size() < 24 ) {
throw CryptoException( "Ciphertext must contain nonce and tag." );
}
char *str = (char *)ciphertext.data();
const char *str = ciphertext.data();
int body_len = ciphertext.size() - 8;
int pt_len = body_len - 16;
@@ -297,7 +297,7 @@ Message Session::decrypt( string ciphertext )
throw CryptoException( "Packet failed integrity check." );
}
Message ret( nonce, string( plaintext_buffer.data(), pt_len ) );
const Message ret( nonce, string( plaintext_buffer.data(), pt_len ) );
return ret;
}
+9 -9
View File
@@ -109,21 +109,21 @@ namespace Crypto {
public:
Nonce( uint64_t val );
Nonce( char *s_bytes, size_t len );
Nonce( const char *s_bytes, size_t len );
string cc_str( void ) const { return string( bytes + 4, 8 ); }
const char *data( void ) const { return bytes; }
uint64_t val( void );
uint64_t val( void ) const;
};
class Message {
public:
Nonce nonce;
string text;
const Nonce nonce;
const string text;
Message( char *nonce_bytes, size_t nonce_len,
char *text_bytes, size_t text_len );
Message( Nonce s_nonce, string s_text );
Message( const char *nonce_bytes, size_t nonce_len,
const char *text_bytes, size_t text_len );
Message( const Nonce & s_nonce, const string & s_text );
};
class Session {
@@ -145,8 +145,8 @@ namespace Crypto {
Session( Base64Key s_key );
~Session();
string encrypt( Message plaintext );
Message decrypt( string ciphertext );
const string encrypt( const Message & plaintext );
const Message decrypt( const string & ciphertext );
Session( const Session & );
Session & operator=( const Session & );
+2 -2
View File
@@ -96,7 +96,7 @@ string Packet::tostring( Session *session )
return session->encrypt( Message( Nonce( direction_seq ), timestamps + payload ) );
}
Packet Connection::new_packet( string &s_payload )
Packet Connection::new_packet( const string &s_payload )
{
uint16_t outgoing_timestamp_reply = -1;
@@ -391,7 +391,7 @@ Connection::Connection( const char *key_str, const char *ip, const char *port )
set_MTU( remote_addr.sa.sa_family );
}
void Connection::send( string s )
void Connection::send( const string & s )
{
if ( !has_remote_addr ) {
return;
+3 -3
View File
@@ -82,7 +82,7 @@ namespace Network {
string payload;
Packet( Direction s_direction,
uint16_t s_timestamp, uint16_t s_timestamp_reply, string s_payload )
uint16_t s_timestamp, uint16_t s_timestamp_reply, const string & s_payload )
: seq( Crypto::unique() ), direction( s_direction ),
timestamp( s_timestamp ), timestamp_reply( s_timestamp_reply ), payload( s_payload )
{}
@@ -190,7 +190,7 @@ namespace Network {
bool have_send_exception;
NetworkException send_exception;
Packet new_packet( string &s_payload );
Packet new_packet( const string &s_payload );
void hop_port( void );
@@ -209,7 +209,7 @@ namespace Network {
Connection( const char *desired_ip, const char *desired_port ); /* server */
Connection( const char *key_str, const char *ip, const char *port ); /* client */
void send( string s );
void send( const string & s );
string recv( void );
const std::vector< int > fds( void ) const;
int get_MTU( void ) const { return MTU; }
+1 -1
View File
@@ -72,7 +72,7 @@ string Fragment::tostring( void )
return ret;
}
Fragment::Fragment( string &x )
Fragment::Fragment( const string &x )
: id( -1 ), fragment_num( -1 ), final( false ), initialized( true ),
contents()
{
+2 -2
View File
@@ -61,12 +61,12 @@ namespace Network {
: id( -1 ), fragment_num( -1 ), final( false ), initialized( false ), contents()
{}
Fragment( uint64_t s_id, uint16_t s_fragment_num, bool s_final, string s_contents )
Fragment( uint64_t s_id, uint16_t s_fragment_num, bool s_final, const string & s_contents )
: id( s_id ), fragment_num( s_fragment_num ), final( s_final ), initialized( true ),
contents( s_contents )
{}
Fragment( string &x );
Fragment( const string &x );
string tostring( void );
+2 -2
View File
@@ -229,7 +229,7 @@ void TransportSender<MyState>::add_sent_state( uint64_t the_timestamp, uint64_t
}
template <class MyState>
void TransportSender<MyState>::send_to_receiver( string diff )
void TransportSender<MyState>::send_to_receiver( const string & diff )
{
uint64_t new_num;
if ( current_state == sent_states.back().state ) { /* previously sent */
@@ -310,7 +310,7 @@ const string TransportSender<MyState>::make_chaff( void )
}
template <class MyState>
void TransportSender<MyState>::send_in_fragments( string diff, uint64_t new_num )
void TransportSender<MyState>::send_in_fragments( const string & diff, uint64_t new_num )
{
Instruction inst;
+2 -2
View File
@@ -64,9 +64,9 @@ namespace Network {
void update_assumed_receiver_state( void );
void attempt_prospective_resend_optimization( string &proposed_diff );
void rationalize_states( void );
void send_to_receiver( string diff );
void send_to_receiver( const string & diff );
void send_empty_ack( void );
void send_in_fragments( string diff, uint64_t new_num );
void send_in_fragments( const string & diff, uint64_t new_num );
void add_sent_state( uint64_t the_timestamp, uint64_t num, MyState &state );
/* state of sender */
+1 -1
View File
@@ -42,7 +42,7 @@ namespace Network {
uint64_t num;
State state;
TimestampedState( uint64_t s_timestamp, uint64_t s_num, State &s_state )
TimestampedState( uint64_t s_timestamp, uint64_t s_num, const State &s_state )
: timestamp( s_timestamp ), num( s_num ), state( s_state )
{}
+1 -1
View File
@@ -102,7 +102,7 @@ string Complete::init_diff( void ) const
return diff_from( Complete( get_fb().ds.get_width(), get_fb().ds.get_height() ));
}
void Complete::apply_string( string diff )
void Complete::apply_string( const string & diff )
{
HostBuffers::HostMessage input;
fatal_assert( input.ParseFromString( diff ) );
+1 -1
View File
@@ -77,7 +77,7 @@ namespace Terminal {
void subtract( const Complete * ) const {}
std::string diff_from( const Complete &existing ) const;
std::string init_diff( void ) const;
void apply_string( std::string diff );
void apply_string( const std::string & diff );
bool operator==( const Complete &x ) const;
bool compare( const Complete &other ) const;
+1 -1
View File
@@ -105,7 +105,7 @@ string UserStream::diff_from( const UserStream &existing ) const
return output.SerializeAsString();
}
void UserStream::apply_string( string diff )
void UserStream::apply_string( const string &diff )
{
ClientBuffers::UserMessage input;
fatal_assert( input.ParseFromString( diff ) );
+5 -5
View File
@@ -57,8 +57,8 @@ namespace Network {
Parser::UserByte userbyte;
Parser::Resize resize;
UserEvent( Parser::UserByte s_userbyte ) : type( UserByteType ), userbyte( s_userbyte ), resize( -1, -1 ) {}
UserEvent( Parser::Resize s_resize ) : type( ResizeType ), userbyte( 0 ), resize( s_resize ) {}
UserEvent( const Parser::UserByte & s_userbyte ) : type( UserByteType ), userbyte( s_userbyte ), resize( -1, -1 ) {}
UserEvent( const Parser::Resize & s_resize ) : type( ResizeType ), userbyte( 0 ), resize( s_resize ) {}
UserEvent() /* default constructor required by C++11 STL */
: type( UserByteType ),
@@ -79,8 +79,8 @@ namespace Network {
public:
UserStream() : actions() {}
void push_back( Parser::UserByte s_userbyte ) { actions.push_back( UserEvent( s_userbyte ) ); }
void push_back( Parser::Resize s_resize ) { actions.push_back( UserEvent( s_resize ) ); }
void push_back( const Parser::UserByte & s_userbyte ) { actions.push_back( UserEvent( s_userbyte ) ); }
void push_back( const Parser::Resize & s_resize ) { actions.push_back( UserEvent( s_resize ) ); }
bool empty( void ) const { return actions.empty(); }
size_t size( void ) const { return actions.size(); }
@@ -90,7 +90,7 @@ namespace Network {
void subtract( const UserStream *prefix );
string diff_from( const UserStream &existing ) const;
string init_diff( void ) const { assert( false ); return string(); };
void apply_string( string diff );
void apply_string( const string &diff );
bool operator==( const UserStream &x ) const { return actions == x.actions; }
bool compare( const UserStream & ) { return false; }
+2 -2
View File
@@ -170,7 +170,7 @@ DispatchRegistry & Terminal::get_global_dispatch_registry( void )
}
static void register_function( Function_Type type,
std::string dispatch_chars,
const std::string & dispatch_chars,
Function f )
{
switch ( type ) {
@@ -186,7 +186,7 @@ static void register_function( Function_Type type,
}
}
Function::Function( Function_Type type, std::string dispatch_chars,
Function::Function( Function_Type type, const std::string & dispatch_chars,
void (*s_function)( Framebuffer *, Dispatcher * ),
bool s_clears_wrap_state )
: function( s_function ), clears_wrap_state( s_clears_wrap_state )
+1 -1
View File
@@ -59,7 +59,7 @@ namespace Terminal {
class Function {
public:
Function() : function( NULL ), clears_wrap_state( true ) {}
Function( Function_Type type, std::string dispatch_chars,
Function( Function_Type type, const std::string & dispatch_chars,
void (*s_function)( Framebuffer *, Dispatcher * ),
bool s_clears_wrap_state = true );
void (*function)( Framebuffer *, Dispatcher * );
+3 -3
View File
@@ -49,9 +49,9 @@ namespace Terminal {
FrameState( const Framebuffer &s_last );
void append( const char c ) { str.append( 1, c ); }
void append( const size_t s, const char c ) { str.append( s, c ); }
void append( const wchar_t wc ) { Cell::append_to_str( str, wc ); }
void append( char c ) { str.append( 1, c ); }
void append( size_t s, char c ) { str.append( s, c ); }
void append( wchar_t wc ) { Cell::append_to_str( str, wc ); }
void append( const char * s ) { str.append( s ); }
void append_string( const std::string &append ) { str.append(append); }