http://www.cryptopp.com/temp/cryptopp20061210.zip
As a side note, the quality of the GCC compiler seems to have improved
significantly since I last looked. GCC 4.1.2 is able to compile Crypto++
at -O3 with no errors. The code produced is only slightly slower than VC
2005 (average of 177 vs 188 from the Crypto++ benchmarks). However the code
size it produces is still significantly larger than VC 2005 (4.6 MB vs 2 MB
for cryptest.exe).
I've often wondered why the last released version is 5.2.1, and not the
FIPS 140-2 validated 5.2.3 version?
Also, can you comment on why the 5.3.x version isn't referenced in the
NIST FIPS 140-[12] pre-validation list (i.e.,
http://csrc.nist.gov/cryptval/140-1/140PreVal.pdf)?
Thanks,
-David
Similarly, this time, 5.3.x will be released as a FIPS validated DLL (with
source code for debugging purposes) that only works on Windows and with MSVC
2005. 5.4 will be a general source code release.
I imagine the reason 5.3.x isn't listed in the pre-validation list is
because it's too early in the validation process. Typically a product is
only listed after the testing lab completes its evaluation, while waiting
for review from NIST.
OK. Notwithstanding the need to freeze the ultimate FIPS-validated
version, wouldn't it be useful to integrate the changes resulting from
the validation process into the tip? In some sense, perhaps this
perhaps just what the 5.2.1/5.2.3 pair is (i.e., there is nothing in
5.2.3 that is generally useful to the 5.2.1 version?). In this way, the
latest version would always have a higher version number than any
previously certified FIPS-version on the branch.
> Similarly, this time, 5.3.x will be released as a FIPS validated DLL (with
> source code for debugging purposes) that only works on Windows and with MSVC
> 2005. 5.4 will be a general source code release.
Perhaps it's the choice of version numbers, but this seems odd to me.
Can you provide some details as to what the core differences are
between the v5.2, v5.3, and v5.4 branches? Because the validation of
5.3.x is tied to .NET2005 I take it .NET2003 will not be certified?
Will 5.3.x (non-FIPS) and subsequent versions of crypto++ continue to
support .NET2003?
> I imagine the reason 5.3.x isn't listed in the pre-validation list is
> because it's too early in the validation process. Typically a product is
> only listed after the testing lab completes its evaluation, while waiting
> for review from NIST.
Hmmm, OK, thanks. How long has it been since the cert request was
submitted?
-David
As to the FIPS process for 5.3.x, it formally (re)started about 2 months
ago.
----- Original Message -----
From: "ColdForest" <dav...@realtimeint.com>
To: "Crypto++ Users" <cryptop...@googlegroups.com>
Sent: Monday, December 11, 2006 1:03 AM
Subject: Re: Crypto++ 5.4 beta release
>
Error 270 error LNK2001: unresolved external symbol "public: virtual
unsigned long __thiscall
CryptoPP::BufferedTransformation::MaxRetrievable(void)const "
(?MaxRetrievable@BufferedTransformation@CryptoPP@@UBEKXZ) SimUtils.obj
Error 271 error LNK2001: unresolved external symbol "public: virtual
unsigned long __thiscall
CryptoPP::BufferedTransformation::Skip(unsigned long)"
(?Skip@BufferedTransformation@CryptoPP@@UAEKK@Z) SimUtils.obj
Error 272 error LNK2001: unresolved external symbol "public: virtual
unsigned long __thiscall
CryptoPP::BufferedTransformation::TotalBytesRetrievable(void)const "
(?TotalBytesRetrievable@BufferedTransformation@CryptoPP@@UBEKXZ) SimUtils.obj
Error 273 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall CryptoPP::Filter::TransferTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)"
(?TransferTo2@Filter@CryptoPP@@UAEIAAVBufferedTransformation@2@AAKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z) SimUtils.obj
Error 274 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall CryptoPP::Filter::CopyRangeTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,unsigned long,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)const "
(?CopyRangeTo2@Filter@CryptoPP@@UBEIAAVBufferedTransformation@2@AAKKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z) SimUtils.obj
Error 275 error LNK2001: unresolved external symbol "public: virtual
void __thiscall
CryptoPP::BufferedTransformation::ChannelInitialize(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,class CryptoPP::NameValuePairs const
&,int)"
(?ChannelInitialize@BufferedTransformation@CryptoPP@@UAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABVNameValuePairs@2@H@Z) SimUtils.obj
Error 276 error LNK2001: unresolved external symbol "public: virtual
void __thiscall CryptoPP::BufferedTransformation::GetWaitObjects(class
CryptoPP::WaitObjectContainer &)"
(?GetWaitObjects@BufferedTransformation@CryptoPP@@UAEXAAVWaitObjectContainer@2@@Z) SimUtils.obj
Error 277 error LNK2019: unresolved external symbol "public: __thiscall
CryptoPP::DefaultEncryptorWithMAC::DefaultEncryptorWithMAC(char const
*,class CryptoPP::BufferedTransformation *)"
(??0DefaultEncryptorWithMAC@CryptoPP@@QAE@PBDPAVBufferedTransformation@1@@Z)
referenced in function "bool __cdecl RaptorEncryptSourceToSink(class
CryptoPP::Source *,class CryptoPP::BufferedTransformation
*,int,int,unsigned char const *)"
(?RaptorEncryptSourceToSink@@YA_NPAVSource@CryptoPP@@PAVBufferedTransformation@2@HHPBE@Z) SimUtils.obj
Error 278 error LNK2019: unresolved external symbol "public: __thiscall
CryptoPP::CRC32::CRC32(void)" (??0CRC32@CryptoPP@@QAE@XZ) referenced in
function "public: __thiscall CryptoPP::Gzip::Gzip(class
CryptoPP::BufferedTransformation *,unsigned int,unsigned int)"
(??0Gzip@CryptoPP@@QAE@PAVBufferedTransformation@1@II@Z) SimUtils.obj
Error 279 error LNK2019: unresolved external symbol "public: __thiscall
CryptoPP::Deflator::Deflator(class CryptoPP::BufferedTransformation
*,int,int)"
(??0Deflator@CryptoPP@@QAE@PAVBufferedTransformation@1@HH@Z) referenced
in function "public: __thiscall CryptoPP::Gzip::Gzip(class
CryptoPP::BufferedTransformation *,unsigned int,unsigned int)"
(??0Gzip@CryptoPP@@QAE@PAVBufferedTransformation@1@II@Z) SimUtils.obj
Error 280 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall CryptoPP::Deflator::Put2(unsigned char const
*,unsigned int,int,bool)"
(?Put2@Deflator@CryptoPP@@UAEIPBEIH_N@Z) SimUtils.obj
Error 281 error LNK2001: unresolved external symbol "public: virtual
void __thiscall CryptoPP::Deflator::IsolatedInitialize(class
CryptoPP::NameValuePairs const &)"
(?IsolatedInitialize@Deflator@CryptoPP@@UAEXABVNameValuePairs@2@@Z) SimUtils.obj
Error 282 error LNK2001: unresolved external symbol "public: virtual
bool __thiscall CryptoPP::Deflator::IsolatedFlush(bool,bool)"
(?IsolatedFlush@Deflator@CryptoPP@@UAE_N_N0@Z) SimUtils.obj
Error 283 error LNK2001: unresolved external symbol "protected: virtual
void __thiscall CryptoPP::Gzip::WritePrestreamHeader(void)"
(?WritePrestreamHeader@Gzip@CryptoPP@@MAEXXZ) SimUtils.obj
Error 284 error LNK2001: unresolved external symbol "protected: virtual
void __thiscall CryptoPP::Gzip::ProcessUncompressedData(unsigned char
const *,unsigned int)"
(?ProcessUncompressedData@Gzip@CryptoPP@@MAEXPBEI@Z) SimUtils.obj
Error 285 error LNK2001: unresolved external symbol "protected: virtual
void __thiscall CryptoPP::Gzip::WritePoststreamTail(void)"
(?WritePoststreamTail@Gzip@CryptoPP@@MAEXXZ) SimUtils.obj
Error 286 error LNK2019: unresolved external symbol "public: __thiscall
CryptoPP::DefaultDecryptorWithMAC::DefaultDecryptorWithMAC(char const
*,class CryptoPP::BufferedTransformation *,bool)"
(??0DefaultDecryptorWithMAC@CryptoPP@@QAE@PBDPAVBufferedTransformation@1@_N@Z)
referenced in function "bool __cdecl RaptorDecryptSourceToSink(class
CryptoPP::Source *,class CryptoPP::BufferedTransformation
*,int,int,unsigned char const *)"
(?RaptorDecryptSourceToSink@@YA_NPAVSource@CryptoPP@@PAVBufferedTransformation@2@HHPBE@Z) SimUtils.obj
Error 287 error LNK2019: unresolved external symbol "public: __thiscall
CryptoPP::Gunzip::Gunzip(class CryptoPP::BufferedTransformation
*,bool,int)"
(??0Gunzip@CryptoPP@@QAE@PAVBufferedTransformation@1@_NH@Z) referenced
in function "bool __cdecl RaptorDecryptSourceToSink(class
CryptoPP::Source *,class CryptoPP::BufferedTransformation
*,int,int,unsigned char const *)"
(?RaptorDecryptSourceToSink@@YA_NPAVSource@CryptoPP@@PAVBufferedTransformation@2@HHPBE@Z) SimUtils.obj
Error 288 error LNK2019: unresolved external symbol "private: static
int const * __cdecl CryptoPP::HexDecoder::GetDecodingLookupArray(void)"
(?GetDecodingLookupArray@HexDecoder@CryptoPP@@CAPBHXZ) referenced in
function "public: __thiscall CryptoPP::HexDecoder::HexDecoder(class
CryptoPP::BufferedTransformation *)"
(??0HexDecoder@CryptoPP@@QAE@PAVBufferedTransformation@1@@Z) SimUtils.obj
Error 289 error LNK2001: unresolved external symbol "private: static
unsigned long const * const CryptoPP::CRC32::m_tab"
(?m_tab@CRC32@CryptoPP@@0QBKB) SimUtils.obj
Error 290 error LNK2019: unresolved external symbol "private: static
int const * __cdecl
CryptoPP::Base64Decoder::GetDecodingLookupArray(void)"
(?GetDecodingLookupArray@Base64Decoder@CryptoPP@@CAPBHXZ) referenced in
function "public: __thiscall
CryptoPP::Base64Decoder::Base64Decoder(class
CryptoPP::BufferedTransformation *)"
(??0Base64Decoder@CryptoPP@@QAE@PAVBufferedTransformation@1@@Z) SimUtils.obj
Error 291 error LNK2001: unresolved external symbol "public: static
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const
CryptoPP::BufferedTransformation::NULL_CHANNEL"
(?NULL_CHANNEL@BufferedTransformation@CryptoPP@@2V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@B) SimUtils.obj
Error 292 error LNK2001: unresolved external symbol "public: virtual
void __thiscall
CryptoPP::BlockOrientedCipherModeBase::UncheckedSetKey(class
CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int)"
(?UncheckedSetKey@BlockOrientedCipherModeBase@CryptoPP@@UAEXABVNameValuePairs@2@PBEI@Z) SimUtils.obj
Error 293 error LNK2001: unresolved external symbol "public: virtual
void __thiscall CryptoPP::CipherModeBase::SetKey(unsigned char const
*,unsigned int,class CryptoPP::NameValuePairs const &)"
(?SetKey@CipherModeBase@CryptoPP@@UAEXPBEIABVNameValuePairs@2@@Z) SimUtils.obj
Error 294 error LNK2001: unresolved external symbol "public: virtual
struct CryptoPP::DecodingResult __thiscall
CryptoPP::PK_FixedLengthDecryptor::Decrypt(class
CryptoPP::RandomNumberGenerator &,unsigned char const *,unsigned
int,unsigned char *)const "
(?Decrypt@PK_FixedLengthDecryptor@CryptoPP@@UBE?AUDecodingResult@2@AAVRandomNumberGenerator@2@PBEIPAE@Z) SimUtils.obj
Error 295 error LNK2001: unresolved external symbol "public: virtual
class CryptoPP::BufferedTransformation * __thiscall
CryptoPP::PK_Decryptor::CreateDecryptionFilter(class
CryptoPP::RandomNumberGenerator &,class
CryptoPP::BufferedTransformation *)const "
(?CreateDecryptionFilter@PK_Decryptor@CryptoPP@@UBEPAVBufferedTransformation@2@AAVRandomNumberGenerator@2@PAV32@@Z) SimUtils.obj
Error 296 error LNK2001: unresolved external symbol "public: virtual
struct CryptoPP::DecodingResult __thiscall
CryptoPP::TF_DecryptorBase::FixedLengthDecrypt(class
CryptoPP::RandomNumberGenerator &,unsigned char const *,unsigned char
*)const "
(?FixedLengthDecrypt@TF_DecryptorBase@CryptoPP@@UBE?AUDecodingResult@2@AAVRandomNumberGenerator@2@PBEPAE@Z) SimUtils.obj
Error 297 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall
CryptoPP::PK_FixedLengthCryptoSystem::MaxPlaintextLength(unsigned
int)const "
(?MaxPlaintextLength@PK_FixedLengthCryptoSystem@CryptoPP@@UBEII@Z) SimUtils.obj
Error 298 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall
CryptoPP::PK_FixedLengthCryptoSystem::CiphertextLength(unsigned
int)const "
(?CiphertextLength@PK_FixedLengthCryptoSystem@CryptoPP@@UBEII@Z) SimUtils.obj
Error 299 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall
CryptoPP::PKCS_EncryptionPaddingScheme::MaxUnpaddedLength(unsigned
int)const "
(?MaxUnpaddedLength@PKCS_EncryptionPaddingScheme@CryptoPP@@UBEII@Z) SimUtils.obj
Error 300 error LNK2001: unresolved external symbol "public: virtual
void __thiscall CryptoPP::PKCS_EncryptionPaddingScheme::Pad(class
CryptoPP::RandomNumberGenerator &,unsigned char const *,unsigned
int,unsigned char *,unsigned int)const "
(?Pad@PKCS_EncryptionPaddingScheme@CryptoPP@@UBEXAAVRandomNumberGenerator@2@PBEIPAEI@Z) SimUtils.obj
Error 301 error LNK2001: unresolved external symbol "public: virtual
struct CryptoPP::DecodingResult __thiscall
CryptoPP::PKCS_EncryptionPaddingScheme::Unpad(unsigned char const
*,unsigned int,unsigned char *)const "
(?Unpad@PKCS_EncryptionPaddingScheme@CryptoPP@@UBE?AUDecodingResult@2@PBEIPAE@Z) SimUtils.obj
Error 302 error LNK2001: unresolved external symbol "public: virtual
void __thiscall CryptoPP::DES::Base::ProcessAndXorBlock(unsigned char
const *,unsigned char const *,unsigned char *)const "
(?ProcessAndXorBlock@Base@DES@CryptoPP@@UBEXPBE0PAE@Z) SimUtils.obj
Error 303 error LNK2001: unresolved external symbol "class
CryptoPP::NullNameValuePairs const CryptoPP::g_nullNameValuePairs"
(?g_nullNameValuePairs@CryptoPP@@3VNullNameValuePairs@1@B) SimUtils.obj
Error 304 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall CryptoPP::StringStore::TransferTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)"
(?TransferTo2@StringStore@CryptoPP@@UAEIAAVBufferedTransformation@2@AAKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z) SimUtils.obj
Error 305 error LNK2001: unresolved external symbol "public: virtual
unsigned int __thiscall CryptoPP::StringStore::CopyRangeTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,unsigned long,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)const "
(?CopyRangeTo2@StringStore@CryptoPP@@UBEIAAVBufferedTransformation@2@AAKKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z) SimUtils.obj
Error 306 error LNK2019: unresolved external symbol "public: void
__thiscall CryptoPP::DES::Base::UncheckedSetKey(enum
CryptoPP::CipherDir,unsigned char const *,unsigned int)"
(?UncheckedSetKey@Base@DES@CryptoPP@@QAEXW4CipherDir@3@PBEI@Z)
referenced in function "void __cdecl CryptoPP::CheckedSetKey<class
CryptoPP::BlockCipherTemplate<0,class CryptoPP::DES::Base> >(class
CryptoPP::BlockCipherTemplate<0,class CryptoPP::DES::Base> *,enum
CryptoPP::CipherDir,unsigned char const *,unsigned int,class
CryptoPP::NameValuePairs const &)"
(??$CheckedSetKey@V?$BlockCipherTemplate@$0A@VBase@DES@CryptoPP@@@CryptoPP@@@CryptoPP@@YAXPAV?$BlockCipherTemplate@$0A@VBase@DES@CryptoPP@@@0@W4CipherDir@0@PBEIABVNameValuePairs@0@@Z) SimUtils.obj
Error 307 error LNK2019: unresolved external symbol "public: void
__thiscall CryptoPP::DES_EDE3::Base::UncheckedSetKey(enum
CryptoPP::CipherDir,unsigned char const *,unsigned int)"
(?UncheckedSetKey@Base@DES_EDE3@CryptoPP@@QAEXW4CipherDir@3@PBEI@Z)
referenced in function "void __cdecl CryptoPP::CheckedSetKey<class
CryptoPP::BlockCipherTemplate<1,class CryptoPP::DES_EDE3::Base> >(class
CryptoPP::BlockCipherTemplate<1,class CryptoPP::DES_EDE3::Base> *,enum
CryptoPP::CipherDir,unsigned char const *,unsigned int,class
CryptoPP::NameValuePairs const &)"
(??$CheckedSetKey@V?$BlockCipherTemplate@$00VBase@DES_EDE3@CryptoPP@@@CryptoPP@@@CryptoPP@@YAXPAV?$BlockCipherTemplate@$00VBase@DES_EDE3@CryptoPP@@@0@W4CipherDir@0@PBEIABVNameValuePairs@0@@Z) SimUtils.obj
Error 308 error LNK2001: unresolved external symbol "bool (__cdecl*
CryptoPP::AssignIntToInteger)(class type_info const &,void *,void const
*)"
(?AssignIntToInteger@CryptoPP@@3P6A_NABVtype_info@@PAXPBX@ZA) SimUtils.obj
Error 309 error LNK2019: unresolved external symbol "protected: void
__thiscall
CryptoPP::SimpleKeyingInterface::ThrowIfInvalidKeyLength(class
CryptoPP::Algorithm const &,unsigned int)"
(?ThrowIfInvalidKeyLength@SimpleKeyingInterface@CryptoPP@@IAEXABVAlgorithm@2@I@Z)
referenced in function "public: void __thiscall
CryptoPP::SimpleKeyedTransformation<class
CryptoPP::BlockTransformation>::ThrowIfInvalidKeyLength(unsigned int)"
(?ThrowIfInvalidKeyLength@?$SimpleKeyedTransformation@VBlockTransformation@CryptoPP@@@CryptoPP@@QAEXI@Z) SimUtils.obj
The Crypto++ Library is not on path, or the 5.4 Library is not the
first on path.
Jeff
I question if that really is the problem. As you can see from the list
of libraries, cryptopp.lib is at the top of the list,
and the directory it's sitting in is at the front of THAT list. The
output clearly indicates the library is being searched,
but the unresolved symbols that it SHOULD contain are not being found.
my library list is (copy and paste from properties - linker - input -
additional dependencies):
cryptopp.lib
ddraw.lib
urlmon.lib
Netapi32.lib
winmm.lib
odbc32.lib
odbccp32.lib
wininet.lib
shlwapi.lib
version.lib
Ws2_32.lib
setupapi.lib
libcpmtd.lib
and the library directories are (copy and paste from properties -
linker - general - additional library directories):
..\CryptLib540\Win32\dll_output\debug;"C:\Program
Files\DirectX\Microsoft DirectX SDK (June 2006)\Lib\x86"
During the link step I get the following output:
1>Searching libraries
1> Searching ..\CryptLib540\Win32\dll_output\debug\cryptopp.lib:
...
1> Searching ..\CryptLib540\Win32\dll_output\debug\cryptopp.lib:
...
1> Searching ..\CryptLib540\Win32\dll_output\debug\cryptopp.lib:
...
1>Finished searching libraries
...
1> Creating library .\DebugA/IntavaMEF.lib and object
.\DebugA/IntavaMEF.exp
1>Searching libraries
1> Searching ..\CryptLib540\Win32\dll_output\debug\cryptopp.lib:
1>Finished searching libraries
...
I got your E-Mails (one suggesting it wasn't in the paths and one
pointing me at the web page
http://www.codeproject.com/useritems/CryptoPPIntegration.asp). But as
you can see for
whatever reason, that information has not solved the problem.
Is there some tool, that you can suggest, to "dump" the symbols in the
library so I can see
what is actually IN it, so I can see if it SHOULD be finding or not
finding them?
The output errors are:
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned long __thiscall
CryptoPP::BufferedTransformation::MaxRetrievable(void)const "
(?MaxRetrievable@BufferedTransformation@CryptoPP@@UBEKXZ)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned long __thiscall
CryptoPP::BufferedTransformation::Skip(unsigned long)"
(?Skip@BufferedTransformation@CryptoPP@@UAEKK@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned long __thiscall
CryptoPP::BufferedTransformation::TotalBytesRetrievable(void)const "
(?TotalBytesRetrievable@BufferedTransformation@CryptoPP@@UBEKXZ)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall CryptoPP::Filter::TransferTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)"
(?TransferTo2@Filter@CryptoPP@@UAEIAAVBufferedTransformation@2@AAKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall CryptoPP::Filter::CopyRangeTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,unsigned long,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)const "
(?CopyRangeTo2@Filter@CryptoPP@@UBEIAAVBufferedTransformation@2@AAKKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall
CryptoPP::BufferedTransformation::ChannelInitialize(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,class CryptoPP::NameValuePairs const
&,int)"
(?ChannelInitialize@BufferedTransformation@CryptoPP@@UAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABVNameValuePairs@2@H@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall
CryptoPP::BufferedTransformation::GetWaitObjects(class
CryptoPP::WaitObjectContainer &)"
(?GetWaitObjects@BufferedTransformation@CryptoPP@@UAEXAAVWaitObjectContainer@2@@Z)
1>SimUtils.obj : error LNK2019: unresolved external symbol "public:
__thiscall
CryptoPP::DefaultEncryptorWithMAC::DefaultEncryptorWithMAC(char const
*,class CryptoPP::BufferedTransformation *)"
(??0DefaultEncryptorWithMAC@CryptoPP@@QAE@PBDPAVBufferedTransformation@1@@Z)
referenced in function "bool __cdecl RaptorEncryptSourceToSink(class
CryptoPP::Source *,class CryptoPP::BufferedTransformation
*,int,int,unsigned char const *)"
(?RaptorEncryptSourceToSink@@YA_NPAVSource@CryptoPP@@PAVBufferedTransformation@2@HHPBE@Z)
1>SimUtils.obj : error LNK2019: unresolved external symbol "public:
__thiscall CryptoPP::CRC32::CRC32(void)" (??0CRC32@CryptoPP@@QAE@XZ)
referenced in function "public: __thiscall CryptoPP::Gzip::Gzip(class
CryptoPP::BufferedTransformation *,unsigned int,unsigned int)"
(??0Gzip@CryptoPP@@QAE@PAVBufferedTransformation@1@II@Z)
1>SimUtils.obj : error LNK2019: unresolved external symbol "public:
__thiscall CryptoPP::Deflator::Deflator(class
CryptoPP::BufferedTransformation *,int,int)"
(??0Deflator@CryptoPP@@QAE@PAVBufferedTransformation@1@HH@Z) referenced
in function "public: __thiscall CryptoPP::Gzip::Gzip(class
CryptoPP::BufferedTransformation *,unsigned int,unsigned int)"
(??0Gzip@CryptoPP@@QAE@PAVBufferedTransformation@1@II@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall CryptoPP::Deflator::Put2(unsigned char
const *,unsigned int,int,bool)"
(?Put2@Deflator@CryptoPP@@UAEIPBEIH_N@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall CryptoPP::Deflator::IsolatedInitialize(class
CryptoPP::NameValuePairs const &)"
(?IsolatedInitialize@Deflator@CryptoPP@@UAEXABVNameValuePairs@2@@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual bool __thiscall CryptoPP::Deflator::IsolatedFlush(bool,bool)"
(?IsolatedFlush@Deflator@CryptoPP@@UAE_N_N0@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "protected:
virtual void __thiscall CryptoPP::Gzip::WritePrestreamHeader(void)"
(?WritePrestreamHeader@Gzip@CryptoPP@@MAEXXZ)
1>SimUtils.obj : error LNK2001: unresolved external symbol "protected:
virtual void __thiscall
CryptoPP::Gzip::ProcessUncompressedData(unsigned char const *,unsigned
int)" (?ProcessUncompressedData@Gzip@CryptoPP@@MAEXPBEI@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "protected:
virtual void __thiscall CryptoPP::Gzip::WritePoststreamTail(void)"
(?WritePoststreamTail@Gzip@CryptoPP@@MAEXXZ)
1>SimUtils.obj : error LNK2019: unresolved external symbol "public:
__thiscall
CryptoPP::DefaultDecryptorWithMAC::DefaultDecryptorWithMAC(char const
*,class CryptoPP::BufferedTransformation *,bool)"
(??0DefaultDecryptorWithMAC@CryptoPP@@QAE@PBDPAVBufferedTransformation@1@_N@Z)
referenced in function "bool __cdecl RaptorDecryptSourceToSink(class
CryptoPP::Source *,class CryptoPP::BufferedTransformation
*,int,int,unsigned char const *)"
(?RaptorDecryptSourceToSink@@YA_NPAVSource@CryptoPP@@PAVBufferedTransformation@2@HHPBE@Z)
1>SimUtils.obj : error LNK2019: unresolved external symbol "public:
__thiscall CryptoPP::Gunzip::Gunzip(class
CryptoPP::BufferedTransformation *,bool,int)"
(??0Gunzip@CryptoPP@@QAE@PAVBufferedTransformation@1@_NH@Z) referenced
in function "bool __cdecl RaptorDecryptSourceToSink(class
CryptoPP::Source *,class CryptoPP::BufferedTransformation
*,int,int,unsigned char const *)"
(?RaptorDecryptSourceToSink@@YA_NPAVSource@CryptoPP@@PAVBufferedTransformation@2@HHPBE@Z)
1>SimUtils.obj : error LNK2019: unresolved external symbol "private:
static int const * __cdecl
CryptoPP::HexDecoder::GetDecodingLookupArray(void)"
(?GetDecodingLookupArray@HexDecoder@CryptoPP@@CAPBHXZ) referenced in
function "public: __thiscall CryptoPP::HexDecoder::HexDecoder(class
CryptoPP::BufferedTransformation *)"
(??0HexDecoder@CryptoPP@@QAE@PAVBufferedTransformation@1@@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "private:
static unsigned long const * const CryptoPP::CRC32::m_tab"
(?m_tab@CRC32@CryptoPP@@0QBKB)
1>SimUtils.obj : error LNK2019: unresolved external symbol "private:
static int const * __cdecl
CryptoPP::Base64Decoder::GetDecodingLookupArray(void)"
(?GetDecodingLookupArray@Base64Decoder@CryptoPP@@CAPBHXZ) referenced in
function "public: __thiscall
CryptoPP::Base64Decoder::Base64Decoder(class
CryptoPP::BufferedTransformation *)"
(??0Base64Decoder@CryptoPP@@QAE@PAVBufferedTransformation@1@@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
static class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const
CryptoPP::BufferedTransformation::NULL_CHANNEL"
(?NULL_CHANNEL@BufferedTransformation@CryptoPP@@2V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@B)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall
CryptoPP::BlockOrientedCipherModeBase::UncheckedSetKey(class
CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int)"
(?UncheckedSetKey@BlockOrientedCipherModeBase@CryptoPP@@UAEXABVNameValuePairs@2@PBEI@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall CryptoPP::CipherModeBase::SetKey(unsigned char
const *,unsigned int,class CryptoPP::NameValuePairs const &)"
(?SetKey@CipherModeBase@CryptoPP@@UAEXPBEIABVNameValuePairs@2@@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual struct CryptoPP::DecodingResult __thiscall
CryptoPP::PK_FixedLengthDecryptor::Decrypt(class
CryptoPP::RandomNumberGenerator &,unsigned char const *,unsigned
int,unsigned char *)const "
(?Decrypt@PK_FixedLengthDecryptor@CryptoPP@@UBE?AUDecodingResult@2@AAVRandomNumberGenerator@2@PBEIPAE@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual class CryptoPP::BufferedTransformation * __thiscall
CryptoPP::PK_Decryptor::CreateDecryptionFilter(class
CryptoPP::RandomNumberGenerator &,class
CryptoPP::BufferedTransformation *)const "
(?CreateDecryptionFilter@PK_Decryptor@CryptoPP@@UBEPAVBufferedTransformation@2@AAVRandomNumberGenerator@2@PAV32@@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual struct CryptoPP::DecodingResult __thiscall
CryptoPP::TF_DecryptorBase::FixedLengthDecrypt(class
CryptoPP::RandomNumberGenerator &,unsigned char const *,unsigned char
*)const "
(?FixedLengthDecrypt@TF_DecryptorBase@CryptoPP@@UBE?AUDecodingResult@2@AAVRandomNumberGenerator@2@PBEPAE@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall
CryptoPP::PK_FixedLengthCryptoSystem::MaxPlaintextLength(unsigned
int)const "
(?MaxPlaintextLength@PK_FixedLengthCryptoSystem@CryptoPP@@UBEII@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall
CryptoPP::PK_FixedLengthCryptoSystem::CiphertextLength(unsigned
int)const "
(?CiphertextLength@PK_FixedLengthCryptoSystem@CryptoPP@@UBEII@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall
CryptoPP::PKCS_EncryptionPaddingScheme::MaxUnpaddedLength(unsigned
int)const "
(?MaxUnpaddedLength@PKCS_EncryptionPaddingScheme@CryptoPP@@UBEII@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall
CryptoPP::PKCS_EncryptionPaddingScheme::Pad(class
CryptoPP::RandomNumberGenerator &,unsigned char const *,unsigned
int,unsigned char *,unsigned int)const "
(?Pad@PKCS_EncryptionPaddingScheme@CryptoPP@@UBEXAAVRandomNumberGenerator@2@PBEIPAEI@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual struct CryptoPP::DecodingResult __thiscall
CryptoPP::PKCS_EncryptionPaddingScheme::Unpad(unsigned char const
*,unsigned int,unsigned char *)const "
(?Unpad@PKCS_EncryptionPaddingScheme@CryptoPP@@UBE?AUDecodingResult@2@PBEIPAE@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall
CryptoPP::DES::Base::ProcessAndXorBlock(unsigned char const *,unsigned
char const *,unsigned char *)const "
(?ProcessAndXorBlock@Base@DES@CryptoPP@@UBEXPBE0PAE@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "class
CryptoPP::NullNameValuePairs const CryptoPP::g_nullNameValuePairs"
(?g_nullNameValuePairs@CryptoPP@@3VNullNameValuePairs@1@B)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall
CryptoPP::StringStore::TransferTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)"
(?TransferTo2@StringStore@CryptoPP@@UAEIAAVBufferedTransformation@2@AAKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned int __thiscall
CryptoPP::StringStore::CopyRangeTo2(class
CryptoPP::BufferedTransformation &,unsigned long &,unsigned long,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,bool)const "
(?CopyRangeTo2@StringStore@CryptoPP@@UBEIAAVBufferedTransformation@2@AAKKABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
1>SimUtils.obj : error LNK2019: unresolved external symbol "public:
void __thiscall CryptoPP::DES::Base::UncheckedSetKey(enum
CryptoPP::CipherDir,unsigned char const *,unsigned int)"
(?UncheckedSetKey@Base@DES@CryptoPP@@QAEXW4CipherDir@3@PBEI@Z)
referenced in function "void __cdecl CryptoPP::CheckedSetKey<class
CryptoPP::BlockCipherTemplate<0,class CryptoPP::DES::Base> >(class
CryptoPP::BlockCipherTemplate<0,class CryptoPP::DES::Base> *,enum
CryptoPP::CipherDir,unsigned char const *,unsigned int,class
CryptoPP::NameValuePairs const &)"
(??$CheckedSetKey@V?$BlockCipherTemplate@$0A@VBase@DES@CryptoPP@@@CryptoPP@@@CryptoPP@@YAXPAV?$BlockCipherTemplate@$0A@VBase@DES@CryptoPP@@@0@W4CipherDir@0@PBEIABVNameValuePairs@0@@Z)
1>SimUtils.obj : error LNK2019: unresolved external symbol "public:
void __thiscall CryptoPP::DES_EDE3::Base::UncheckedSetKey(enum
CryptoPP::CipherDir,unsigned char const *,unsigned int)"
(?UncheckedSetKey@Base@DES_EDE3@CryptoPP@@QAEXW4CipherDir@3@PBEI@Z)
referenced in function "void __cdecl CryptoPP::CheckedSetKey<class
CryptoPP::BlockCipherTemplate<1,class CryptoPP::DES_EDE3::Base> >(class
CryptoPP::BlockCipherTemplate<1,class CryptoPP::DES_EDE3::Base> *,enum
CryptoPP::CipherDir,unsigned char const *,unsigned int,class
CryptoPP::NameValuePairs const &)"
(??$CheckedSetKey@V?$BlockCipherTemplate@$00VBase@DES_EDE3@CryptoPP@@@CryptoPP@@@CryptoPP@@YAXPAV?$BlockCipherTemplate@$00VBase@DES_EDE3@CryptoPP@@@0@W4CipherDir@0@PBEIABVNameValuePairs@0@@Z)
1>SimUtils.obj : error LNK2001: unresolved external symbol "bool
(__cdecl* CryptoPP::AssignIntToInteger)(class type_info const &,void
*,void const *)"
(?AssignIntToInteger@CryptoPP@@3P6A_NABVtype_info@@PAXPBX@ZA)
1>SimUtils.obj : error LNK2019: unresolved external symbol "protected:
Are you using the static version of the library, or linking to the DLL?
> Is there some tool, that you can suggest, to "dump" the symbols in the
> library so I can see what is actually IN it
dumpbin /EXPORTS. It comes with Visual C++6.0 (and I imagine later).
Did you rebuild the Library with VC8? (I ask because I am curious if
the name decoration algorithm changed).
Jeff
I am trying to link to the static version (cryptopp.lib), mostly
because I am
trying to build an app that is a DLL (a COM DLL at that). Everything
I've
seen seems to indicate that VC8 DOESN'T like linking a DLL into a DLL.
Yes. I built the library wqith VC8. There has to be some compile option
for
the library, or link option for the application that I don't have,
because I am
ignorant of it being needed. The problem is, being ignorant of it, I
have little
possiblity just stumbling onto it.
Are you using the Crypto++ namespace? (the errors are usally a bit different).
The first think I would do is physically remove any of the old
library. (Burn it to a CD if it makes you feel better).
Then, I would rebuild CryptLib Test only, and get a little starter
project going - something that is trivial.
It definetly sounds like a path problem to me. Have you verified the
path to the Lib and Header files in VC8?
Jeff
On 12/12/06, Dane <da...@intava.com> wrote:
>
>
I added:
using namespace CryptoPP;
to my StdAfx.h, after getting this response. No soap. Still getting
the same unresolved symbols.
>
> The first think I would do is physically remove any of the old
> library. (Burn it to a CD if it makes you feel better).
Did that.
>
> Then, I would rebuild CryptLib Test only, and get a little starter
> project going - something that is trivial.
CryptLib Test builds, with no unresolved symbols.
>
> It definetly sounds like a path problem to me. Have you verified the
> path to the Lib and Header files in VC8?
Yes, I have. In fact I used cut and paste from the Windows address
bar to put the paths into the properties (modified to replace common
ancestor dir paths with ..). So, I know it's not a problem of a typo.
I should think that if it were a pathing problem I would be
getting a can't open the header file, or library (which I DID get
before
I remembered to add the paths), rather than just an unresolved
external. The downloaded solution for 5.4 has the library named
cryptopp.lib (and cryptopp.dll), where the old library (5.1.2) was
called cryptlib.lib (and cryptlib.dll) (at least it is on our setup).
I've
examined the list of libraries and cryptlib isn't in them (anymore),
so I know it's not using the old library erroneously.
Send me screen shots of the Lib Path, Include Path, and Source Path.
Using <ALT> <PRINT SCREEN> (it captures the foreground Window). Go off
the group.
Jeff
On 12/12/06, Dane <da...@intava.com> wrote:
>
>
AppSourcePath.JPG - directory where I am trying to build my app from
IncludeDirectories.JPG - application property page (properties - C/C++ -
General - additional include directories)
LibPath.JPG - application property page (properties - linker - General -
additional library directories)
Any suggestions you can make to help me get this fixed would be
appreciated.
> -----Original Message-----
> From: cryptop...@googlegroups.com [mailto:cryptopp-
> us...@googlegroups.com] On Behalf Of Jeffrey Walton
> Sent: Tuesday, December 12, 2006 11:42 AM
> To: cryptop...@googlegroups.com
> Subject: Re: Crypto++ 5.4 beta release
>
>
Place the library in the root of c:\, and modify your path
accordingly. I can't imagine Long File Names being a problem (they
were not in the past), but...
Also, are all the files located on the local machine (or are you
mixing a network drive in).
Jeff
On 12/12/06, Dane <da...@intava.com> wrote:
>
>
Specify the full path.
Jeff
Jeff
On 12/12/06, Dane Anderson <Da...@intava.com> wrote:
>
Dane,
The following command (pardon the wrapping)
"C:\Program Files (x86)\Microsoft Visual Studio 8
\VC\bin\dumpbin.exe" /all
"c:\dev80\external\lib\x64\crypto++\5.3\cryptlib53.lib" | grep
MaxRetrievable@BufferedTransformation
Yielded this on my system (this is against a snopshot of CVS
from several months ago):
29D81C0 ?MaxRetrievable@BufferedTransformation@CryptoPP@@UEBA_KXZ
5F ?MaxRetrievable@BufferedTransformation@CryptoPP@@UEBA_KXZ
What does the command give you if you run it against your .lib?
Thanks,
Joseph
PS. /EXPORTS won't work against a .lib, only a .dll or .exe
> -----Original Message-----
> From: cryptop...@googlegroups.com [mailto:cryptopp-
> us...@googlegroups.com] On Behalf Of Joseph Galbraith
> Sent: Tuesday, December 12, 2006 12:33 PM
> To: cryptop...@googlegroups.com
> Subject: Re: Crypto++ 5.4 beta release
>
>
"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
first. Then it will work correctly.
Thanks,
Joseph
?MaxRetrievable@BufferedTransformation@CryptoPP@@UBEKXZ
The lib contains:
?MaxRetrievable@BufferedTransformation@CryptoPP@@UBE_KXZ
Now the question becomes, what missing/ added compile/link
option is responsible for that '_' between the E and the K?
And was it an added to or missing from WHICH (lib build, or
App build).
Also, there shouldn't be any problems linking a DLL against a DLL. But using
the static library saves on code size and I'd suggest it unless you need to
use the DLL for some reason (such as FIPS compliance).
Error 1 error LNK2005: "public: virtual void __thiscall
CryptoPP::HexDecoder::IsolatedInitialize(class CryptoPP::NameValuePairs
const &)"
(?IsolatedInitialize@HexDecoder@CryptoPP@@UAEXABVNameValuePairs@2@@Z)
already defined in SimUtils.obj cryptlib.lib
And two more just like it. Any suggestions on getting rid of THOSE
(Please).
By the way; Thank you for your help.
> -----Original Message-----
> From: cryptop...@googlegroups.com [mailto:cryptopp-
> us...@googlegroups.com] On Behalf Of Wei Dai
> Sent: Tuesday, December 12, 2006 2:15 PM
> To: cryptop...@googlegroups.com
> Subject: Re: Crypto++ 5.4 beta release
>
>
>/EXPORTS won't work against a .lib, only a .dll or .exe
I should have been paying better attention.
Jeff
For what it is worth (I don't know how far along you are on COM, etc).
It is a COM component with Dual Interfaces, Rich Error Support, etc.
Based on Crypto++.
http://www.codeproject.com/com/BigInteger.asp
Jeff
Dane wrote:
> I am trying to link to the static version (cryptopp.lib), mostly
> because I am trying to build an app that is a DLL (a COM DLL
> at that). Everything I've seen seems to indicate that VC8 DOESN'T
> like linking a DLL into a DLL.
>
> SNIP...
SimUtils.cpp is one of your own files right? Does the simutils.cpp/h
file have any includes? if so what...
its possible your including something in your simutils.cpp/.h that you
should not be and therefore getting multiple defined errors.
if you using precompiled headers... what does ur stdafx.h/cpp look
like ? what are the settiings for the .cpp file? are you using auto
pch or create via the .h file.
Turn on Verbose linker output. see if you can locate both places its defined.
Anthony
On 12/12/06, Dane Anderson <Da...@intava.com> wrote:
>
I _think_ this is a side effect of the DLL being the 'Active Project'
in the Workspace (or 'Startup Project' in VC7.0 and ablove). Here's
what I think is happening:
The use downloads Crypto++
The user opens the Workspace
The users select Build (not Build All)
Jeff
----- Original Message -----
From: "Jeffrey Walton" <nolo...@gmail.com>
To: "Crypto++ Users" <cryptop...@googlegroups.com>
Sent: Friday, December 22, 2006 10:11 PM
Subject: Re: Crypto++ 5.4 beta release
>