Boost Python and Crypto++
Hi, I'm trying to use Crypto++ with boost::python. My code seems to build OK, but when I try to import it into Python, I receive this error: ImportError: nf_decrypt.so: undefined symbol: _ZN8CryptoPP21SimpleKeyingInterface6SetKeyEPKhmRKNS_14NameValuePairsE Here is the cpp source code file: #include <cryptopp/aes.h> #include <cryptopp/hex.h> #include <cryptopp/modes.h> std::string nf_decrypt( const std::string& estring ) { std::string hex_pk = "00000000000000000000000000000000"; std::string hex_iv = "00000000000000000000000000000000"; std::string pk; std::string iv; std::string cipher_text; std::string plain_text; CryptoPP::StringSource ( hex_pk.c_str(), true, new CryptoPP::HexDecoder( new CryptoPP::StringSink(pk) ) ); CryptoPP::StringSource ( hex_iv.c_str(), true, new CryptoPP::HexDecoder( new CryptoPP::StringSink(iv) ) ); CryptoPP::StringSource ( estring.c_str(), true, new CryptoPP::StringSink(cipher_text) ); CryptoPP::AES::Decryption aesDecryption( (byte*)pk.c_str(), CryptoPP::AES::DEFAULT_KEYLENGTH ); CryptoPP::CBC_Mode_ExternalCipher::Decryption cbcDecryption( aesDecryption, (byte*)iv.c_str() ); CryptoPP::StringSource( cipher_text, true, new CryptoPP::StreamTransformationFilter( cbcDecryption, new CryptoPP::StringSink(plain_text))); return plain_text; } // python wrapper #include <boost/python.hpp> BOOST_PYTHON_MODULE(nf_decrypt) { boost::python::def("nf_decrypt", nf_decrypt, boost::python::args("string_to_decrypt"), "nf_decrypt docstring"); } Has anyone built boost python extensions from Crypto++ code? I may try doing the same thing with Botan if Crypto++ in general is problematic. I can send my Jamroot file if that would be helpful. Thanks for any advice.
Hi,
I'm trying to use Crypto++ with boost::python. My code seems to build OK, but when I try to import it into Python, I receive this error:
ImportError: nf_decrypt.so: undefined symbol: _ZN8CryptoPP21SimpleKeyingInterface6SetKeyEPKhmRKNS_14NameValuePairsE [...] "_ZN8CryptoPP21SimpleKeyingInterface6SetKeyEPKhmRKNS_14NameValuePairsE" symbol is "CryptoPP::SimpleKeyingInterface::SetKey(unsigned char const*, unsigned long, CryptoPP::NameValuePairs const&)". This does not sound
On 02/16/2012 02:35 PM, Boost Users List wrote: like a Python problem. Are you linking with the appropriate -lfoo switches? -- VZ
participants (2)
-
Boost Users List
-
Václav Zeman