Hello everyone, a question when I try to use the package and compile it in
shared form (.so)
and I want to read it I get this:
undefined symbol:
_ZN8CryptoPP21SimpleKeyingInterface6SetKeyEPKhmRKNS_14NameValuePairsE
in which I investigate and it says that I have to compile it in such a way
that the symbols must be together with the compiled one, I have tried
everything to compile it according to the forums and documentations with
the command "-g" or "-O2" but I still cannot read the file
My build commands are these:
g++ -DNDEBUG -g -O2 -Wall -Wextra -o node.o node.cpp -l:libcryptopp.a
g++ -shared -o node.so node.o
I would be very grateful for your great help.
Versions install:
libcrypto++6
libcrypto++-utils
libcrypto++-dev
libcrypto++-doc
libcrypto++6-dbg
My code:
File name: node.cpp
`
#include "iostream" // I write it like this since it is not shown on this
page
#include "string" // I write it like this since it is not shown on this page
#include "cryptopp/modes.h"
#include "cryptopp/aes.h"
#include "cryptopp/filters.h"
#include "cryptopp/hex.h"
using namespace std;
using namespace CryptoPP;
string node (string text){
string plain = params;
// Our input:
// Note: the input was previously generated by the same cipher
string keyImput = "ABCDEF";
string ivImput = "ABCDF";
string cadenaInput = plain;
byte iv_[CryptoPP::AES::BLOCKSIZE] = {}; // this decoder would transform
our std::string into raw hex: CryptoPP::HexDecoder decoder;
decoder.Put((byte*)ivImput.data(), ivImput.size()); decoder.MessageEnd();
decoder.Get(iv_, sizeof(iv_)); std::string cadenaInput_raw; {
CryptoPP::HexDecoder decoder; decoder.Put((byte*)cadenaInput.data(),
cadenaInput.size()); decoder.MessageEnd(); long long size =
decoder.MaxRetrievable(); cadenaInput_raw.resize(size);
decoder.Get((byte*)cadenaInput_raw.data(), cadenaInput_raw.size()); } byte
key_[CryptoPP::AES::DEFAULT_KEYLENGTH]; { CryptoPP::HexDecoder decoder;
decoder.Put((byte*)keyImput.data(), keyImput.size()); decoder.MessageEnd();
decoder.Get(key_, sizeof(key_)); } string decrypted_text; try {
CBC_Mode<AES>::Decryption d; d.SetKeyWithIV(key_, sizeof(key_), iv_);
StringSource s(cadenaInput_raw, true, new StreamTransformationFilter( d,
new StringSink(decrypted_text) ) // StreamTransformationFilter ); //
StringSource return decrypted_text; } catch( CryptoPP::Exception& e ) {
std::cerr << e.what() << std::endl; exit(1); }
}
extern "C" string dencrypnode (string params){
return node(params);
}
int main (){
string keyImput;
string retorno;
std::cout << "\nIngrese llave key : ";
std::cin >> keyImput;
retorno = dencrypnode(keyImput);
std::cout << retorno << std::endl;
return 0;
}
`
--
You received this message because you are subscribed to the Google Groups
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/cryptopp-users/6323f852-15b5-4b3f-8c84-59e342c6d942n%40googlegroups.com.