gl | 2 Feb 2004 00:15

Re: VC6 link errors with CVS 5.1 src

 
As an update, I also can't build the test projects for the same reasons.  I'll play with this some more tomorrow...
--
gl
 
----- Original Message -----
From: gl
Sent: Sunday, February 01, 2004 8:56 PM
Subject: VC6 link errors with CVS 5.1 src

 
(VC6 SP5, Processor Pack, WinXP SP1).
 
Hi guys,
 
I've been using a few parts of the original 5.1 release for quite some time now (built as a static lib).  Today I updated everything from CVS, and whilst the library builds fine (sans the old impompatibilty with STLport that I can't remember how to fix : ), I now get spammed with zillions of 'unresolved external symbol' errors on linking with the same app.
 
No doubt it's something simple, but is there anything new in CVS that could be causing this?  Am I missing a new preprocessor symbol or something?
 
The errors:
 
Linking...
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::Update(unsigned char const *,unsigned int)" (?Update <at> ?$IteratedHashBase <at> IVHashT
ransformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBEI <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Un
checkedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at>
CryptoPP <at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePoli
cy> >::UncheckedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> Cr
yptoPP <at> <at> <at> CryptoPP <at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Seek(
unsigned __int64)" (?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEX_K <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::Seek(unsigned __int64)" (?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEX_K <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Proce
ssData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::ProcessData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Resyn
chronize(unsigned char const *)" (?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::Resynchronize(unsigned char const *)" (?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected: void __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::PadLastBlock(unsigned int,unsigned char)" (?PadLastBlock <at> ?$IteratedHashBase <at> IVHashTr
ansformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> IAEXIE <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected: virtual unsigned int __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const *,unsigned int)" (?HashMultipl
eBlocks <at> ?$IteratedHashBase <at> IVHashTransformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> MAEIPBII <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::Restart(void)" (?Restart <at> ?$IteratedHashBase <at> IVHashTransformation <at> CryptoPP <at> <at> <at> Cry
ptoPP <at> <at> UAEXXZ)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual unsigned char * __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int &)" (?CreateUpdateSpace <at> ?$IteratedHas
hBase <at> IVHashTransformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEPAEAAI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "private: virtual void __thiscall CryptoPP::CFB_EncryptionTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::
CombineMessageAndShiftRegister(unsigned char *,unsigned char *,unsigned char const *,unsigned int)" (?CombineMessageAndShiftRegister <at> ?$CFB_EncryptionTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> C
ryptoPP <at> <at> EAEXPAE0PBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Un
checkedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP
<at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Proce
ssData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Resyn
chronize(unsigned char const *)" (?Resynchronize <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "private: virtual void __thiscall CryptoPP::CFB_DecryptionTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::
CombineMessageAndShiftRegister(unsigned char *,unsigned char *,unsigned char const *,unsigned int)" (?CombineMessageAndShiftRegister <at> ?$CFB_DecryptionTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> C
ryptoPP <at> <at> EAEXPAE0PBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePoli
cy> >::UncheckedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> Cr
yptoPP <at> <at> <at> CryptoPP <at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::Seek(unsigned __int64)" (?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEX_K <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::ProcessData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::Resynchronize(unsigned char const *)" (?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
--
gl
 
Russell Robinson | 2 Feb 2004 09:03

Random numbers

Looking at class RandomPool, it would seem that you can add real
entropy (for example user latency, mouse movements, etc.)
to the pool by calling "Put2".

Can anyone confirm if this is correct?

--

-- 
Russell Robinson (mailto:russrobinson <at> tectite.com)
Author of Tectite (CRM and Licensing for Software Developers)
Download your free CRM from: http://www.tectite.com/

gl | 2 Feb 2004 10:12

Re: VC6 link errors with CVS 5.1 src

> 3) The MS Crypto lib wasn't automatically linked - a #pragma (lib,
> "advapi32.lib") somewhere would be nice.

'#pragma comment(lib...' of course.
--
gl

gl | 2 Feb 2004 10:10

Re: VC6 link errors with CVS 5.1 src


OK, I decided to start again and got the entire project from CVS again - and
now it builds and validates just fine : ).  Not sure what the problem was.

Some minor issues:

(VC6SP5, static full lib builds tested only)

1) I needed to increase the compiler heap limit for the lib (/Zm400 worked
for me).  I notice this was already done for the crypttest project.  Perhaps
this is due to my using STLport.

2) The use of the word 'hash' clashes with my installed STLport (version
4.5) in a couple of places - I simply renamed it '_hash' (patches attached).

3) The MS Crypto lib wasn't automatically linked - a #pragma (lib,
"advapi32.lib") somewhere would be nice.

And finally, the bad news - the new version bloats my app by 20K (I was
hoping it would reduce it).  Is there anything I can do with this version to
reduce code size?
--
gl

----- Original Message ----- 
From: gl
To: cryptopp-list <at> eskimo.com
Sent: Sunday, February 01, 2004 11:15 PM
Subject: Re: VC6 link errors with CVS 5.1 src

As an update, I also can't build the test projects for the same reasons.
I'll play with this some more tomorrow...
--
gl

----- Original Message ----- 
From: gl
To: cryptopp-list <at> eskimo.com
Sent: Sunday, February 01, 2004 8:56 PM
Subject: VC6 link errors with CVS 5.1 src

(VC6 SP5, Processor Pack, WinXP SP1).

Hi guys,

I've been using a few parts of the original 5.1 release for quite some time
now (built as a static lib).  Today I updated everything from CVS, and
whilst the library builds fine (sans the old impompatibilty with STLport
that I can't remember how to fix : ), I now get spammed with zillions of
'unresolved external symbol' errors on linking with the same app.

No doubt it's something simple, but is there anything new in CVS that could
be causing this?  Am I missing a new preprocessor symbol or something?

The errors:

Linking...
_test_reader.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall CryptoPP::IteratedHashBase<unsigned int,class
CryptoPP::HashTransformation>::Update(unsigned char const *,unsigned int)"
(?Update <at> ?$IteratedHashBase <at> IVHashT
ransformation <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPBEI <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected:
virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Un
checkedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const
*,unsigned int,unsigned char const *)"
(?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditive
CipherAbstractPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> 
CryptoPP <at>  <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePoli
cy> >::UncheckedSetKey(class CryptoPP::NameValuePairs const &,unsigned char
const *,unsigned int,unsigned char const *)"
(?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditive
CipherAbstractPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> Cr
yptoPP <at>  <at>  <at> CryptoPP <at>  <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
>::Seek(
unsigned __int64)"
(?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstr
actPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEX_K <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::Seek(unsigned __int64)"
(?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstr
actPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEX_K <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
>::Proce
ssData(unsigned char *,unsigned char const *,unsigned int)"
(?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCiph
erAbstractPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPAEPB
EI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::ProcessData(unsigned char *,unsigned char const *,unsigned int)"
(?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCiph
erAbstractPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPAEPB
EI <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
>::Resyn
chronize(unsigned char const *)"
(?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCi
pherAbstractPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPBE
 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::Resynchronize(unsigned char const *)"
(?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCi
pherAbstractPolicy <at> CryptoPP <at>  <at> VCTR_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPBE
 <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected:
void __thiscall CryptoPP::IteratedHashBase<unsigned int,class
CryptoPP::HashTransformation>::PadLastBlock(unsigned int,unsigned char)"
(?PadLastBlock <at> ?$IteratedHashBase <at> IVHashTr
ansformation <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> IAEXIE <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected:
virtual unsigned int __thiscall CryptoPP::IteratedHashBase<unsigned
int,class CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int
const *,unsigned int)" (?HashMultipl
eBlocks <at> ?$IteratedHashBase <at> IVHashTransformation <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> MAEIPBI
I <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public:
virtual void __thiscall CryptoPP::IteratedHashBase<unsigned int,class
CryptoPP::HashTransformation>::Restart(void)"
(?Restart <at> ?$IteratedHashBase <at> IVHashTransformation <at> CryptoPP <at>  <at>  <at> Cry
ptoPP <at>  <at> UAEXXZ)
_test_reader.obj : error LNK2001: unresolved external symbol "public:
virtual unsigned char * __thiscall CryptoPP::IteratedHashBase<unsigned
int,class CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int &)"
(?CreateUpdateSpace <at> ?$IteratedHas
hBase <at> IVHashTransformation <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEPAEAAI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"private: virtual void __thiscall CryptoPP::CFB_EncryptionTemplate<class
CryptoPP::AbstractPolicyHolder<class
CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::
CombineMessageAndShiftRegister(unsigned char *,unsigned char *,unsigned char
const *,unsigned int)"
(?CombineMessageAndShiftRegister <at> ?$CFB_EncryptionTemplate <at> V?$AbstractPolicyH
older <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at>  <at> VCFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> C
ryptoPP <at>  <at> EAEXPAE0PBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"protected: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class
CryptoPP::AbstractPolicyHolder<class
CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Un
checkedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const
*,unsigned int,unsigned char const *)"
(?UncheckedSetKey <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAb
stractPolicy <at> CryptoPP <at>  <at> VCFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP
 <at>  <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class
CryptoPP::AbstractPolicyHolder<class
CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Proce
ssData(unsigned char *,unsigned char const *,unsigned int)"
(?ProcessData <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstra
ctPolicy <at> CryptoPP <at>  <at> VCFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPAEPBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class
CryptoPP::AbstractPolicyHolder<class
CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Resyn
chronize(unsigned char const *)"
(?Resynchronize <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbst
ractPolicy <at> CryptoPP <at>  <at> VCFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPBE <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"private: virtual void __thiscall CryptoPP::CFB_DecryptionTemplate<class
CryptoPP::AbstractPolicyHolder<class
CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::
CombineMessageAndShiftRegister(unsigned char *,unsigned char *,unsigned char
const *,unsigned int)"
(?CombineMessageAndShiftRegister <at> ?$CFB_DecryptionTemplate <at> V?$AbstractPolicyH
older <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at>  <at> VCFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> C
ryptoPP <at>  <at> EAEXPAE0PBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePoli
cy> >::UncheckedSetKey(class CryptoPP::NameValuePairs const &,unsigned char
const *,unsigned int,unsigned char const *)"
(?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditive
CipherAbstractPolicy <at> CryptoPP <at>  <at> VOFB_ModePolicy <at> 2 <at>  <at> Cr
yptoPP <at>  <at>  <at> CryptoPP <at>  <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::Seek(unsigned __int64)"
(?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstr
actPolicy <at> CryptoPP <at>  <at> VOFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEX_K <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::ProcessData(unsigned char *,unsigned char const *,unsigned int)"
(?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCiph
erAbstractPolicy <at> CryptoPP <at>  <at> VOFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPAEPB
EI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol
"public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class
CryptoPP::AbstractPolicyHolder<struct
CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::Resynchronize(unsigned char const *)"
(?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCi
pherAbstractPolicy <at> CryptoPP <at>  <at> VOFB_ModePolicy <at> 2 <at>  <at> CryptoPP <at>  <at>  <at> CryptoPP <at>  <at> UAEXPBE
 <at> Z)
--
gl
Attachment (bench.cpp.patch): application/octet-stream, 805 bytes
Attachment (iterhash.h.patch): application/octet-stream, 864 bytes
Wei Dai | 2 Feb 2004 11:24

Re: Random numbers

On Mon, Feb 02, 2004 at 07:03:20PM +1100, Russell Robinson wrote:
> Looking at class RandomPool, it would seem that you can add real
> entropy (for example user latency, mouse movements, etc.)
> to the pool by calling "Put2".
> 
> Can anyone confirm if this is correct?

Yes.

Wei Dai | 2 Feb 2004 11:46

STLport, code size (was: VC6 link errors with CVS 5.1 src)

On Mon, Feb 02, 2004 at 09:10:53AM -0000, gl wrote:
> 2) The use of the word 'hash' clashes with my installed STLport (version
> 4.5) in a couple of places - I simply renamed it '_hash' (patches attached).

Why can't this be fixed in STLport instead?

> 3) The MS Crypto lib wasn't automatically linked - a #pragma (lib,
> "advapi32.lib") somewhere would be nice.

Will do. Thanks for the suggestion.

> And finally, the bad news - the new version bloats my app by 20K (I was
> hoping it would reduce it).  Is there anything I can do with this version to
> reduce code size?

I don't know. I wish I had tool for profiling code size, that would take
an .exe and give a list of demangled names of functions that are linked
into it and the size of each function. Does anyone know of a tool like
this?

In the mean time, try removing .cpp files that aren't being used from the
library. It's very unlikely, but maybe the linker is bring in stuff it
doesn't need. Also, try VC++ .NET 2003 if you can. Its whole program 
optimization is very good at reducing code size.

gl | 2 Feb 2004 12:21

Re: STLport, code size (was: VC6 link errors with CVS 5.1 src)


> On Mon, Feb 02, 2004 at 09:10:53AM -0000, gl wrote:
> > 2) The use of the word 'hash' clashes with my installed STLport (version
> > 4.5) in a couple of places - I simply renamed it '_hash' (patches
attached).
>
> Why can't this be fixed in STLport instead?

Hmm, well, it seems to be part of the hash_map container.  The conflict
arises from a definition in STLport's 'hash_fun.h'.  It makes sense to me to
work around this in crypto, considering it's such a small fix (it's just a
parameter name in a couple of calls).

..\cryptlib5.1\iterhash.h(91) : error C2955: 'hash' : use of class template
requires template argument list
        D:\STLPORT\STLPORT\stl/_hash_fun.h(40) : see declaration of 'hash'

> > And finally, the bad news - the new version bloats my app by 20K (I was
> > hoping it would reduce it).  Is there anything I can do with this
version to
> > reduce code size?
>
> I don't know. I wish I had tool for profiling code size, that would take
> an .exe and give a list of demangled names of functions that are linked
> into it and the size of each function. Does anyone know of a tool like
> this?

Funny, I've been wondering about exactly the same thing only a few days ago.
I did a quick search at the time but couldn't find anything.  Surely a tool
like that must exist?

> In the mean time, try removing .cpp files that aren't being used from the
> library. It's very unlikely, but maybe the linker is bring in stuff it
> doesn't need. Also, try VC++ .NET 2003 if you can. Its whole program
> optimization is very good at reducing code size.

I'll try the .cpp approach - unfortunately I don't have access to .Net.
Thanks.
--
gl

gl | 1 Feb 2004 21:56

VC6 link errors with CVS 5.1 src

 
(VC6 SP5, Processor Pack, WinXP SP1).
 
Hi guys,
 
I've been using a few parts of the original 5.1 release for quite some time now (built as a static lib).  Today I updated everything from CVS, and whilst the library builds fine (sans the old impompatibilty with STLport that I can't remember how to fix : ), I now get spammed with zillions of 'unresolved external symbol' errors on linking with the same app.
 
No doubt it's something simple, but is there anything new in CVS that could be causing this?  Am I missing a new preprocessor symbol or something?
 
The errors:
 
Linking...
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::Update(unsigned char const *,unsigned int)" (?Update <at> ?$IteratedHashBase <at> IVHashT
ransformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBEI <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Un
checkedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at>
CryptoPP <at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePoli
cy> >::UncheckedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> Cr
yptoPP <at> <at> <at> CryptoPP <at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Seek(
unsigned __int64)" (?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEX_K <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::Seek(unsigned __int64)" (?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEX_K <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Proce
ssData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::ProcessData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy> >::Resyn
chronize(unsigned char const *)" (?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::CTR_ModePolicy>
 >::Resynchronize(unsigned char const *)" (?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VCTR_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected: void __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::PadLastBlock(unsigned int,unsigned char)" (?PadLastBlock <at> ?$IteratedHashBase <at> IVHashTr
ansformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> IAEXIE <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "protected: virtual unsigned int __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const *,unsigned int)" (?HashMultipl
eBlocks <at> ?$IteratedHashBase <at> IVHashTransformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> MAEIPBII <at> Z)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::Restart(void)" (?Restart <at> ?$IteratedHashBase <at> IVHashTransformation <at> CryptoPP <at> <at> <at> Cry
ptoPP <at> <at> UAEXXZ)
_test_reader.obj : error LNK2001: unresolved external symbol "public: virtual unsigned char * __thiscall CryptoPP::IteratedHashBase<unsigned int,class CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int &)" (?CreateUpdateSpace <at> ?$IteratedHas
hBase <at> IVHashTransformation <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEPAEAAI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "private: virtual void __thiscall CryptoPP::CFB_EncryptionTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::
CombineMessageAndShiftRegister(unsigned char *,unsigned char *,unsigned char const *,unsigned int)" (?CombineMessageAndShiftRegister <at> ?$CFB_EncryptionTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> C
ryptoPP <at> <at> EAEXPAE0PBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Un
checkedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP
<at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Proce
ssData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::CFB_CipherTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::Resyn
chronize(unsigned char const *)" (?Resynchronize <at> ?$CFB_CipherTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "private: virtual void __thiscall CryptoPP::CFB_DecryptionTemplate<class CryptoPP::AbstractPolicyHolder<class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy> >::
CombineMessageAndShiftRegister(unsigned char *,unsigned char *,unsigned char const *,unsigned int)" (?CombineMessageAndShiftRegister <at> ?$CFB_DecryptionTemplate <at> V?$AbstractPolicyHolder <at> VCFB_CipherAbstractPolicy <at> CryptoPP <at> <at> VCFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> C
ryptoPP <at> <at> EAEXPAE0PBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePoli
cy> >::UncheckedSetKey(class CryptoPP::NameValuePairs const &,unsigned char const *,unsigned int,unsigned char const *)" (?UncheckedSetKey <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> Cr
yptoPP <at> <at> <at> CryptoPP <at> <at> MAEXABVNameValuePairs <at> 2 <at> PBEI1 <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::Seek(unsigned __int64)" (?Seek <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEX_K <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::ProcessData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPAEPBEI <at> Z)
cryptlibd.lib(modes.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AdditiveCipherTemplate<class CryptoPP::AbstractPolicyHolder<struct CryptoPP::AdditiveCipherAbstractPolicy,class CryptoPP::OFB_ModePolicy>
 >::Resynchronize(unsigned char const *)" (?Resynchronize <at> ?$AdditiveCipherTemplate <at> V?$AbstractPolicyHolder <at> UAdditiveCipherAbstractPolicy <at> CryptoPP <at> <at> VOFB_ModePolicy <at> 2 <at> <at> CryptoPP <at> <at> <at> CryptoPP <at> <at> UAEXPBE <at> Z)
--
gl
 
James Carroll | 2 Feb 2004 14:27

protecting the executable itself


Hi, I just used crypto to add some signature verification to my
application and gave it to a co-worker to try to break.  He broke it by
cracking the executable and skipping over my crypto calls. 

Does anyone know of a way of using crypto++ to protect the executable
that's using it?  

Thanks,
-Jim

Shawn Masters | 2 Feb 2004 14:37

RE: protecting the executable itself

	I did a lot of work in trusted computing in a hostile environment a
few years ago.  So long as the person running the code can alter the code
you can not prevent this, period.  Of course you can make it more difficult,
but never prevent it.  Try compressing the executable with one of the tools
available.  Also make sure you strip the executable before sending it out.
Anything more will probably involve OS specific alterations.

	73,
		Shawn

> -----Original Message-----
> From: James Carroll [mailto:jim <at> microbrightfield.com]
> Sent: Monday, February 02, 2004 8:27 AM
> To: cryptopp-list <at> eskimo.com
> Subject: protecting the executable itself
> 
> 
> Hi, I just used crypto to add some signature verification to my
> application and gave it to a co-worker to try to break.  He broke it by
> cracking the executable and skipping over my crypto calls.
> 
> Does anyone know of a way of using crypto++ to protect the executable
> that's using it?
> 
> Thanks,
> -Jim


Gmane