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 $