Crypto++ 5.4 beta release

138 views
Skip to first unread message

Wei Dai

unread,
Dec 9, 2006, 9:32:17 PM12/9/06
to cryptop...@googlegroups.com, cryptopp...@lists.sourceforge.net
The last release of Crypto++ 5.2.1 is a bit outdated now and doesn't compile
out of the box with the latest compilers. I've decided to release version
5.4 before 5.3.x, since FIPS testing of 5.3.x might take a few more months.
Here is a snapshot of the current CVS. I've tested it with VC6, VC2005, GCC
3.4.4 (cygwin), GCC 4.1.2 (Linux). Please give it a try. I'll make the 5.4
release in a couple of weeks if no major problems are found.

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).


ColdForest

unread,
Dec 10, 2006, 11:28:32 AM12/10/06
to Crypto++ Users
Hi Wei,

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

Wei Dai

unread,
Dec 10, 2006, 11:49:04 AM12/10/06
to Crypto++ Users
The last "general" release was 5.2.1, because 5.2.3 was not tested on other
platforms and compilers. The FIPS validation process focuses on one specific
platform and compiler, and it's hard to make sure that the end product will
compile and run on other platforms and compilers.

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.

ColdForest

unread,
Dec 10, 2006, 12:03:34 PM12/10/06
to Crypto++ Users
Wei Dai wrote:
> The last "general" release was 5.2.1, because 5.2.3 was not tested on other
> platforms and compilers. The FIPS validation process focuses on one specific
> platform and compiler, and it's hard to make sure that the end product will
> compile and run on other platforms and compilers.

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

Wei Dai

unread,
Dec 10, 2006, 1:59:52 PM12/10/06
to cryptop...@googlegroups.com
MSVC 2003 will be supported in non-FIPS releases, but it will be a lower
priority since I imagine most people are using either VC6 or VC2005. (I only
have those 2 installed on my main machine.) It may be supported by patches
instead of out of the box.

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


>

ColdForest

unread,
Dec 10, 2006, 2:11:11 PM12/10/06
to Crypto++ Users
Thanks for this.
-David

Dane

unread,
Dec 11, 2006, 7:44:31 PM12/11/06
to Crypto++ Users
I downloaded and built this. As long as I don't try to change the
directory
paths that the stuff gets built to, it builds just fine. I am in the
process of
upgrading, an application we have that uses the lib, to VS 2005. Under
VS 6 the application links to the 5.1 release. When I try to link to
the
5.4 release using VS2005 I get a boatload of unresolved externals. All
of
them are from functions inside classes of CryptoPP. I suspect that my
build of the 5.4 is needing some compile time definition, but have no
idea
what it should be, or if it should have some value. Is there any chance
of some assistance with this problem? The errors I'm getting are:

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

Jeffrey Walton

unread,
Dec 11, 2006, 8:48:31 PM12/11/06
to cryptop...@googlegroups.com
Hi Dane,

The Crypto++ Library is not on path, or the 5.4 Library is not the
first on path.

Jeff

Dane

unread,
Dec 12, 2006, 12:22:49 PM12/12/06
to Crypto++ Users
Thank you for your response.

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:

Jeffrey Walton

unread,
Dec 12, 2006, 1:30:00 PM12/12/06
to cryptop...@googlegroups.com
Hi Dane,

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

Dane

unread,
Dec 12, 2006, 1:42:07 PM12/12/06
to Crypto++ Users

Jeffrey Walton wrote:
> Hi Dane,
>
> 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.

Jeffrey Walton

unread,
Dec 12, 2006, 1:50:14 PM12/12/06
to cryptop...@googlegroups.com
Hi Dane,

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:
>
>

Dane

unread,
Dec 12, 2006, 2:24:36 PM12/12/06
to Crypto++ Users

Jeffrey Walton wrote:
> Hi Dane,
>
> Are you using the Crypto++ namespace? (the errors are usally a bit different).

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.

Jeffrey Walton

unread,
Dec 12, 2006, 2:41:44 PM12/12/06
to cryptop...@googlegroups.com
Hi Dane,

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:
>
>

Dane Anderson

unread,
Dec 12, 2006, 3:00:47 PM12/12/06
to cryptop...@googlegroups.com
OK. Attached are:
LibSourcePath.JPG - directory where I put/built the library.

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
>
>

LibSourcePath.JPG
AppSourcePath.JPG
IncludeDirectories.JPG
LibPath.JPG

Jeffrey Walton

unread,
Dec 12, 2006, 3:08:34 PM12/12/06
to cryptop...@googlegroups.com
Dane,

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:
>
>

Jeffrey Walton

unread,
Dec 12, 2006, 3:10:48 PM12/12/06
to cryptop...@googlegroups.com
..\cryptlib does not look kosher.

Specify the full path.

Jeff

Dane Anderson

unread,
Dec 12, 2006, 3:10:54 PM12/12/06
to cryptop...@googlegroups.com
Sorry didn't check the return address. Just thought that it would
use Jeff's address.

Jeffrey Walton

unread,
Dec 12, 2006, 3:16:56 PM12/12/06
to cryptop...@googlegroups.com
I'm at a disadvantage: I don't have VC7 or VC8. Is it possible to add
the Paths to this area (rather than 'Additional Include' area).

Jeff

On 12/12/06, Dane Anderson <Da...@intava.com> wrote:
>

CryptoDirectoriesVC7.gif

Joseph Galbraith

unread,
Dec 12, 2006, 3:33:17 PM12/12/06
to cryptop...@googlegroups.com
Jeffrey Walton wrote:
> Hi Dane,
>
> 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).

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

Dane Anderson

unread,
Dec 12, 2006, 3:42:12 PM12/12/06
to cryptop...@googlegroups.com
What it gets me is an error dialog telling me that mspdb80.dll was not
found. Since I installed everything on the install disk for VS 2005
I suspect that is something I will have to hunt for.

> -----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
>
>

Joseph Galbraith

unread,
Dec 12, 2006, 4:36:10 PM12/12/06
to cryptop...@googlegroups.com
Sorry, you need to run:

"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"

first. Then it will work correctly.

Thanks,

Joseph

Dane Anderson

unread,
Dec 12, 2006, 5:12:02 PM12/12/06
to cryptop...@googlegroups.com
That worked. Where the linker appears to be looking for:

?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).

Wei Dai

unread,
Dec 12, 2006, 5:15:28 PM12/12/06
to cryptop...@googlegroups.com
I think the problem is that you are actually linking against the exports
library for the DLL. The static library is Win32\output\debug\cryptlib.lib.
The DLL and its exports library are in Win32\dll_output. Note the "dll_" in
the path name. I'll add this to the FAQ.

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).

Dane Anderson

unread,
Dec 12, 2006, 5:25:03 PM12/12/06
to cryptop...@googlegroups.com
Sigh. That got rid of the unresolved references. Only to replace them
with multiply defined symbols.

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
>
>

Jeffrey Walton

unread,
Dec 13, 2006, 6:58:37 PM12/13/06
to Crypto++ Users
Thanks Joseph,

>/EXPORTS won't work against a .lib, only a .dll or .exe

I should have been paying better attention.

Jeff

Jeffrey Walton

unread,
Dec 13, 2006, 8:46:17 PM12/13/06
to Crypto++ Users
Hi Dane,

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...

anthon...@gmail.com

unread,
Dec 14, 2006, 12:51:12 AM12/14/06
to cryptop...@googlegroups.com
Im somewhat curious.

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:
>

Jeffrey Walton

unread,
Dec 22, 2006, 9:11:44 AM12/22/06
to Crypto++ Users
Hi Wei,

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

Wei Dai

unread,
Dec 22, 2006, 9:34:21 AM12/22/06
to Jeffrey Walton, Crypto++ Users
To close out this thread, I managed to help Dane fix his problems via
private email. It's hard to summarize what the issues were since I couldn't
see the whole picture from my end. Perhaps if Dane is still on the list he
can post a summary when he has time.

----- 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


>

Reply all
Reply to author
Forward
0 new messages