Hi Again,
Added a few #include <stdio> worked until the compile bombed on crypto.cc
<http://crypto.cc/>
Not sure how to fix this code.
Getting late and going to bed now but will continue this tomorrow.
thanks again for your help!
Joe
jcardani@jcardani-ThinkCentre-XXXX ~/pybombs/src/gr-op25test/op25/build $ make
Scanning dependencies of target gnuradio-op25
[ 1%] Building CXX object op25/gr-op25/lib/CMakeFiles/gnuradio-op25.dir/crypto.cc.o
In file included from
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:1:0:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:17:14: error:
‘uint8_t’ was not declared in this scope
std::vector<uint8_t> mi;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:17:21: error:
template argument 1 is invalid
std::vector<uint8_t> mi;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:17:21: error:
template argument 2 is invalid
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:18:5: error:
‘uint16_t’ does not name a type
uint16_t kid;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:19:2: error:
‘uint8_t’ does not name a type
uint8_t algid;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h: In constructor
‘CryptoState::CryptoState()’:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:14:2: error: class
‘CryptoState’ does not have any field named ‘kid’
kid(0), algid(0), mi(MESSAGE_INDICATOR_LENGTH)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:14:10: error: class
‘CryptoState’ does not have any field named ‘algid’
kid(0), algid(0), mi(MESSAGE_INDICATOR_LENGTH)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h: At global scope:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:32:22: error:
‘uint8_t’ was not declared in this scope
typedef std::vector<uint8_t> key_type;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:32:29: error:
template argument 1 is invalid
typedef std::vector<uint8_t> key_type;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:32:29: error:
template argument 2 is invalid
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:33:19: error:
‘uint16_t’ was not declared in this scope
typedef std::map<uint16_t, key_type > key_map_type;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:33:38: error:
template argument 1 is invalid
typedef std::map<uint16_t, key_type > key_map_type;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:33:38: error:
template argument 3 is invalid
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:33:38: error:
template argument 4 is invalid
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:34:10: error:
‘uint8_t’ does not name a type
typedef uint8_t type_id;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:41:16: error:
‘type_id’ does not name a type
virtual const type_id id() const=0;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:45:10: error:
‘uint64_t’ does not name a type
virtual uint64_t generate(size_t n_bits)=0; // Can request up to 64 bits of key stream at
one time
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.h:56:61: error:
‘crypto_algorithm::type_id’ has not been declared
virtual crypto_algorithm::sptr algorithm(crypto_algorithm::type_id algid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:12:38: error: ‘uint64_t’ was not declared in this scope
static unsigned long long swap_bytes(uint64_t l)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:13:1: error: expected ‘,’ or ‘;’ before ‘{’ token
{
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:65:5: error: ‘uint16_t’ does not name a type
uint16_t m_current_kid;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:86:8: error: ‘type_id’ does not name a type
const type_id id() const
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:163:14: error: ‘uint64_t’ has not been declared
void set_iv(uint64_t iv)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>: In constructor ‘des_ofb::des_ofb()’:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:71:5: error: class ‘des_ofb’ does not have any field named
‘m_current_kid’
: m_current_kid(-1)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:73:41: error: ‘memset’ was not declared in this scope
memset(&m_ksDES, 0, sizeof(m_ksDES));
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>: In member function ‘virtual bool des_ofb::update(const
CryptoState&)’:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:93:7: error: ‘m_current_kid’ was not declared in this scope
if (m_current_kid != state.kid)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:93:30: error: ‘const struct CryptoState’ has no member named
‘kid’
if (m_current_kid != state.kid)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:95:18: error: request for member ‘empty’ in
‘((des_ofb*)this)->des_ofb::m_key_map’, which is of non-class type
‘crypto_algorithm::key_map_type {aka int}’
if (m_key_map.empty())
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:101:28: error: expected initializer before ‘it’
key_map_type::iterator it = m_key_map.find(state.kid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:102:9: error: ‘it’ was not declared in this scope
if (it != m_key_map.end())
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:102:25: error: request for member ‘end’ in
‘((des_ofb*)this)->des_ofb::m_key_map’, which is of non-class type
‘crypto_algorithm::key_map_type {aka int}’
if (it != m_key_map.end())
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:106:29: error: request for member ‘empty’ in
‘((des_ofb*)this)->des_ofb::m_default_key’, which is of non-class type
‘crypto_algorithm::key_type {aka int}’
else if (!m_default_key.empty())
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:108:33: error: ‘stderr’ was not declared in this scope
/*if (m_verbose) */fprintf(stderr, "Key 0x%04x not found in key map - using
default key\n", state.kid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:108:104: error: ‘const struct CryptoState’ has no member named
‘kid’
/*if (m_verbose) */fprintf(stderr, "Key 0x%04x not found in key map - using
default key\n", state.kid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:108:107: error: ‘fprintf’ was not declared in this scope
/*if (m_verbose) */fprintf(stderr, "Key 0x%04x not found in key map - using
default key\n", state.kid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:114:33: error: ‘stderr’ was not declared in this scope
/*if (m_verbose) */fprintf(stderr, "Key 0x%04x not found in key map and no
default key\n", state.kid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:114:103: error: ‘const struct CryptoState’ has no member named
‘kid’
/*if (m_verbose) */fprintf(stderr, "Key 0x%04x not found in key map and no
default key\n", state.kid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:114:106: error: ‘fprintf’ was not declared in this scope
/*if (m_verbose) */fprintf(stderr, "Key 0x%04x not found in key map and no
default key\n", state.kid);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:118:26: error: ‘const struct CryptoState’ has no member named
‘kid’
m_current_kid = state.kid;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:121:3: error: ‘uint64_t’ was not declared in this scope
uint64_t iv = 0;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:121:12: error: expected ‘;’ before ‘iv’
uint64_t iv = 0;
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:122:30: error: ‘iv’ was not declared in this scope
size_t n = std::min(sizeof(iv), state.mi.size());
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:122:44: error: request for member ‘size’ in
‘state.CryptoState::mi’, which is of non-class type ‘const int’
size_t n = std::min(sizeof(iv), state.mi.size());
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:123:26: error: invalid types ‘const int[int]’ for array
subscript
memcpy(&iv, &state.mi[0], n);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:123:30: error: ‘memcpy’ was not declared in this scope
memcpy(&iv, &state.mi[0], n);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>: In member function ‘virtual void des_ofb::set_key_map(const
key_map_type&)’:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:133:3: error: ‘m_current_kid’ was not declared in this scope
m_current_kid = -1; // To refresh on next update if it has changed
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>: In member function ‘virtual bool des_ofb::set_key(const
key_type&)’:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:140:11: error: request for member ‘size’ in ‘key’, which is of
non-class type ‘const key_type {aka const int}’
if (key.size() != valid_key_length)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:142:27: error: ‘stderr’ was not declared in this scope
if (m_verbose) fprintf(stderr, "DES:\tIncorrect key length of %lu (should be
%lu)\n", key.size(), valid_key_length);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:142:94: error: request for member ‘size’ in ‘key’, which is of
non-class type ‘const key_type {aka const int}’
if (m_verbose) fprintf(stderr, "DES:\tIncorrect key length of %lu (should be
%lu)\n", key.size(), valid_key_length);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:142:118: error: ‘fprintf’ was not declared in this scope
if (m_verbose) fprintf(stderr, "DES:\tIncorrect key length of %lu (should be
%lu)\n", key.size(), valid_key_length);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:148:28: error: invalid types ‘const key_type {aka const
int}[int]’ for array subscript
memcpy(&m_key_des, &key[0], std::min(key.size(), sizeof(m_key_des)));
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:148:44: error: request for member ‘size’ in ‘key’, which is of
non-class type ‘const key_type {aka const int}’
memcpy(&m_key_des, &key[0], std::min(key.size(), sizeof(m_key_des)));
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:148:70: error: ‘memcpy’ was not declared in this scope
memcpy(&m_key_des, &key[0], std::min(key.size(), sizeof(m_key_des)));
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:154:45: error: invalid types ‘const key_type {aka const
int}[int]’ for array subscript
ss << boost::format("%02X") % (int)key[i];
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>: In member function ‘void des_ofb::set_iv(int)’:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:167:27: error: ‘stderr’ was not declared in this scope
if (m_verbose) fprintf(stderr, "DES:\t%i bits used from %i iterations\n",
m_ks_idx, m_iterations);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:167:100: error: ‘fprintf’ was not declared in this scope
if (m_verbose) fprintf(stderr, "DES:\t%i bits used from %i iterations\n",
m_ks_idx, m_iterations);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>: In member function ‘long long unsigned int
des_ofb::generate(size_t)’:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:188:50: error: ‘swap_bytes’ cannot be used as a function
unsigned long long ullCurrent = swap_bytes(m_ks);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:214:31: error: ‘swap_bytes’ cannot be used as a function
ullCurrent = swap_bytes(m_ks);
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>: At global scope:
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:231:67: error: ‘crypto_algorithm::sptr crypto_module::algorithm’
is not a static member of ‘class crypto_module’
crypto_algorithm::sptr crypto_module::algorithm(crypto_algorithm::type_id algid)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:231:49: error: ‘type_id’ is not a member of ‘crypto_algorithm’
crypto_algorithm::sptr crypto_module::algorithm(crypto_algorithm::type_id algid)
^
/home/jcardani/pybombs/src/gr-op25test/op25/op25/gr-op25/lib/crypto.cc
<http://crypto.cc/>:232:1: error: expected ‘,’ or ‘;’ before ‘{’ token
{
^
make[2]: *** [op25/gr-op25/lib/CMakeFiles/gnuradio-op25.dir/crypto.cc.o] Error 1
make[1]: *** [op25/gr-op25/lib/CMakeFiles/gnuradio-op25.dir/all] Error 2
make: *** [all] Error 2
jcardani@jcardani-ThinkCentre-XXXX ~/pybombs/src/gr-op25test/op25/build $