Question

I'm using crypto package in poco library.

the application is release /MT and i link to PocoCryptomt.lib, PocoFoundationmt.lib

PocoCryptomt.lib is built with static vc openssl library libeay32mt.lib I use this code

#define POCO_STATIC
#include <iostream>
#include <Poco\Crypto\Cipher.h>
#include <Poco\Crypto\CipherFactory.h>
#include <Poco\Crypto\CipherKey.h>
#include <string>
using namespace std;
using namespace Poco::Crypto;
typedef std::vector<unsigned char> ByteVec;
void main()
{
unsigned char k[]={49, 17, 199, 69, 242, 178, 153, 25, 129, 86, 8, 125, 151, 171, 20, 162, 4, 247, 64, 221, 42, 57, 80, 69, 48, 164, 8, 34, 44, 24, 9, 90};
    unsigned char i[]={ 219, 157, 180, 130, 179, 204, 171, 242, 251, 112, 209, 173, 100, 219, 141, 179};

    ByteVec key= ByteVec(k,k+sizeof(k)/sizeof(unsigned char));
    ByteVec iv= ByteVec(i,i+sizeof(i)/sizeof(unsigned char));

    //CipherFactory& cf = CipherFactory::defaultFactory;
    CipherFactory& cf = CipherFactory::defaultFactory();
    Cipher* c=cf.createCipher(CipherKey("aes-256",key,iv));
    string plain="Ahmed";
    string crypted=c->encryptString(plain,Cipher::ENC_BASE64);
    string decrypted=c->decryptString(crypted,Cipher::ENC_BASE64);
    cout<<plain<<endl<<crypted<<decrypted;
    cout<<endl;system("PAUSE");
}

I get the following error

1>------ Rebuild All started: Project: Encryption, Configuration: Release Win32 ------
1>  Main.cpp
1>PocoCryptomt.lib(CipherKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_get_cipherbyname
1>PocoCryptomt.lib(CipherKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_CIPHER_flags
1>PocoCryptomt.lib(CipherKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_BytesToKey
1>PocoCryptomt.lib(CipherKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_md5
1>PocoCryptomt.lib(CipherKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_CIPHER_key_length
1>PocoCryptomt.lib(CipherKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_CIPHER_block_size
1>PocoCryptomt.lib(CipherKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_CIPHER_iv_length
1>PocoCryptomt.lib(CipherImpl.obj) : error LNK2001: unresolved external symbol _ERR_error_string
1>PocoCryptomt.lib(RSACipherImpl.obj) : error LNK2001: unresolved external symbol _ERR_error_string
1>PocoCryptomt.lib(CipherImpl.obj) : error LNK2001: unresolved external symbol _ERR_get_error
1>PocoCryptomt.lib(RSACipherImpl.obj) : error LNK2001: unresolved external symbol _ERR_get_error
1>PocoCryptomt.lib(CipherImpl.obj) : error LNK2001: unresolved external symbol _EVP_CipherInit
1>PocoCryptomt.lib(CipherImpl.obj) : error LNK2001: unresolved external symbol _EVP_CIPHER_CTX_cleanup
1>PocoCryptomt.lib(CipherImpl.obj) : error LNK2001: unresolved external symbol _EVP_CIPHER_CTX_block_size
1>PocoCryptomt.lib(CipherImpl.obj) : error LNK2001: unresolved external symbol _EVP_CipherUpdate
1>PocoCryptomt.lib(CipherImpl.obj) : error LNK2001: unresolved external symbol _EVP_CipherFinal_ex
1>PocoCryptomt.lib(RSACipherImpl.obj) : error LNK2001: unresolved external symbol _RSA_size
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _RSA_size
1>PocoCryptomt.lib(RSACipherImpl.obj) : error LNK2001: unresolved external symbol _RSA_public_encrypt
1>PocoCryptomt.lib(RSACipherImpl.obj) : error LNK2001: unresolved external symbol _RSA_private_decrypt
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _CRYPTO_set_dynlock_destroy_callback
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _CRYPTO_set_dynlock_lock_callback
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _CRYPTO_set_dynlock_create_callback
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _CRYPTO_set_locking_callback
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _CRYPTO_num_locks
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _RAND_seed
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _OPENSSL_add_all_algorithms_noconf
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _SSL_load_error_strings
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _SSL_library_init
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _OPENSSL_config
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _ERR_free_strings
1>PocoCryptomt.lib(OpenSSLInitializer.obj) : error LNK2001: unresolved external symbol _EVP_cleanup
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_PKEY_get1_RSA
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _X509_get_pubkey
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BN_free
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _RSA_generate_key_ex
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BN_set_word
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BN_new
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _RSA_new
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _PEM_read_bio_RSAPrivateKey
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BIO_free
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _PEM_read_bio_RSAPublicKey
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BIO_ctrl
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BIO_new
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BIO_s_file
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BIO_new_mem_buf
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _RSA_free
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _PEM_write_bio_RSAPrivateKey
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _EVP_des_ede3_cbc
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _PEM_write_bio_RSAPublicKey
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BIO_s_mem
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BN_bn2bin
1>PocoCryptomt.lib(RSAKeyImpl.obj) : error LNK2001: unresolved external symbol _BN_num_bits
1>F:\WorkShop\c++\Win32\Encryption\Release\Encryption.exe : fatal error LNK1120: 50 unresolved externals
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

it works fin with /MD , PocoCryptomd.lib, PocoFoundationmd.lib what can i do to solve this problem

Was it helpful?

Solution

You have to link with ssleay32[mt].lib as well as libeay32[mt].lib.

OTHER TIPS

In Visual Studio you can add ssleay32[mt].lib and libeay32[mt].lib as mentioned by Alan uses these steps:

Right-Click the Project -> Select Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies

Enter the library names and press ok

Also, verify that the path to these static libraries are in the linker

Additional Library Directories

under the General expandable list item.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top