fixed: crypto++ compile errors, linux compiler syntax bugs, and code style (spaces -> tabs)

This commit is contained in:
Nick Bolton
2013-04-11 00:30:41 +00:00
parent 650da22c33
commit c0dcdd52e7
10 changed files with 99 additions and 77 deletions

View File

@@ -57,7 +57,7 @@ public:
//@}
#ifdef TEST_ENV
void handleDataForTest() { handleData(NULL, NULL); }
void handleDataForTest() { handleData(CEvent(), NULL); }
#endif
protected:
@@ -76,7 +76,7 @@ private:
// modifier key translation
KeyID translateKey(KeyID) const;
KeyModifierMask translateModifierMask(KeyModifierMask) const;
KeyModifierMask translateModifierMask(KeyModifierMask) const;
// event handlers
void handleData(const CEvent&, void*);
@@ -110,7 +110,7 @@ private:
typedef EResult (CServerProxy::*MessageParser)(const UInt8*);
CClient* m_client;
synergy::IStream* m_stream;
synergy::IStream* m_stream;
UInt32 m_seqNum;
@@ -121,13 +121,13 @@ private:
bool m_ignoreMouse;
KeyModifierID m_modifierTranslationTable[kKeyModifierIDLast];
KeyModifierID m_modifierTranslationTable[kKeyModifierIDLast];
double m_keepAliveAlarm;
CEventQueueTimer* m_keepAliveAlarmTimer;
CEventQueueTimer* m_keepAliveAlarmTimer;
MessageParser m_parser;
IEventQueue* m_eventQueue;
MessageParser m_parser;
IEventQueue* m_eventQueue;
};
#endif

View File

@@ -16,6 +16,7 @@
*/
#include "CCryptoMode.h"
#include "XSynergy.h"
using namespace CryptoPP;
@@ -46,7 +47,7 @@ CCryptoMode::CCryptoMode(ECryptoMode mode, bool encryption) :
break;
default:
throw std::exception("crypto mode not set");
throw XBadCryptoMode();
}
}
else {
@@ -71,7 +72,7 @@ CCryptoMode::CCryptoMode(ECryptoMode mode, bool encryption) :
break;
default:
throw std::exception("crypto mode not set");
throw XBadCryptoMode();
}
}
}

View File

@@ -17,8 +17,8 @@
#pragma once
#include <cryptopp562/gcm.h>
#include <cryptopp562/modes.h>
#include <cryptopp562/gcm.h>
#include <cryptopp562/modes.h>
#include <cryptopp562/aes.h>
#include "ECryptoMode.h"
#include "CString.h"
@@ -50,7 +50,7 @@ private:
typedef CryptoPP::CTR_Mode<CryptoPP::AES>::Decryption CCtrModeDec;
typedef CryptoPP::GCM<CryptoPP::AES>::Decryption CGcmModeDec;
static CCryptoMode::ECryptoMode parseMode(CString& mode);
static ECryptoMode parseMode(CString& mode);
ECryptoMode m_mode;
void* m_crypto;

View File

@@ -16,6 +16,7 @@
*/
#include "CCryptoOptions.h"
#include "XSynergy.h"
CCryptoOptions::CCryptoOptions(
const CString& modeString,
@@ -48,6 +49,6 @@ CCryptoOptions::parseMode(CString modeString)
return kGcm;
}
else {
throw std::exception("invalid crypto mode");
throw XBadCryptoMode();
}
}

View File

@@ -15,12 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CCryptoStream.h"
#include "CLog.h"
#include <sstream>
#include <string>
#include "CCryptoOptions.h"
#include "CCryptoStream.h"
#include "CLog.h"
#include "CCryptoOptions.h"
#include <sstream>
#include <string>
#include <stdio.h>
using namespace CryptoPP;
using namespace synergy::crypto;
@@ -96,7 +97,7 @@ CCryptoStream::createKey(byte* out, const CString& password, UInt8 keyLength, UI
assert(keyLength <= SHA256::DIGESTSIZE);
byte temp[SHA256::DIGESTSIZE];
byte* in = reinterpret_cast<byte*>(const_cast<char*>(password.c_str()));
byte* in = reinterpret_cast<byte*>(const_cast<char*>(password.c_str()));
SHA256().CalculateDigest(temp, in, password.length());
byte* tempKey = new byte[SHA256::DIGESTSIZE];
@@ -119,28 +120,28 @@ CCryptoStream::setIv(const byte* iv)
m_decryption.setKeyWithIv(m_key, kKeyLength, iv);
}
void
CCryptoStream::newIv(byte* out)
{
m_autoSeedRandomPool.GenerateBlock(out, CRYPTO_IV_SIZE);
setIv(out);
}
void
CCryptoStream::logBuffer(const char* name, const byte* buf, int length)
{
if (CLOG->getFilter() < kDEBUG4) {
return;
}
std::stringstream ss;
ss << "crypto: " << name << ":";
char buffer[4];
for (int i = 0; i < length; i++) {
sprintf(buffer, " %02X", buf[i]);
ss << buffer;
}
LOG((CLOG_DEBUG4 "%s", ss.str().c_str()));
void
CCryptoStream::newIv(byte* out)
{
m_autoSeedRandomPool.GenerateBlock(out, CRYPTO_IV_SIZE);
setIv(out);
}
void
CCryptoStream::logBuffer(const char* name, const byte* buf, int length)
{
if (CLOG->getFilter() < kDEBUG4) {
return;
}
std::stringstream ss;
ss << "crypto: " << name << ":";
char buffer[4];
for (int i = 0; i < length; i++) {
sprintf(buffer, " %02X", buf[i]);
ss << buffer;
}
LOG((CLOG_DEBUG4 "%s", ss.str().c_str()));
}

View File

@@ -18,11 +18,12 @@
#pragma once
#include "BasicTypes.h"
#include "CStreamFilter.h"
#include "CCryptoMode.h"
#include "CCryptoOptions.h"
#include "CStreamFilter.h"
#include "CCryptoMode.h"
#include <cryptopp562/osrng.h>
#include "cryptopp562/sha.h"
#include <cryptopp562/sha.h>
class CCryptoOptions;
#define CRYPTO_IV_SIZE CryptoPP::AES::BLOCKSIZE
@@ -51,8 +52,8 @@ public:
*/
virtual void write(const void* in, UInt32 n);
//! Set the IV
void setIv(const byte* iv);
//! Set the IV
void setIv(const byte* iv);
//! Get a new IV
/*!
@@ -67,11 +68,11 @@ public:
private:
void logBuffer(const char* name, const byte* buf, int length);
byte* m_key;
CCryptoMode m_encryption;
byte* m_key;
CCryptoMode m_encryption;
CCryptoMode m_decryption;
CryptoPP::AutoSeededRandomPool m_autoSeedRandomPool;
};
};
namespace synergy {
namespace crypto {

View File

@@ -29,6 +29,15 @@ XBadClient::getWhat() const throw()
return "XBadClient";
}
//
// XBadCryptoMode
//
CString
XBadCryptoMode::getWhat() const throw()
{
return "XBadCryptoMode";
}
//
// XIncompatibleClient

View File

@@ -30,6 +30,12 @@ Thrown when the client fails to follow the protocol.
*/
XBASE_SUBCLASS_WHAT(XBadClient, XSynergy);
//! Bad crypto mode
/*!
Thrown when the user enters an invalid crypto mode.
*/
XBASE_SUBCLASS_WHAT(XBadCryptoMode, XSynergy);
//! Incompatible client exception
/*!
Thrown when a client attempting to connect has an incompatible version.

View File

@@ -20,6 +20,7 @@
#include "CMockStream.h"
#include "CMockEventQueue.h"
#include "CPacketStreamFilter.h"
#include "CCryptoOptions.h"
using ::testing::_;
using ::testing::Invoke;