Am 05.09.2015 um 04:02 schrieb Jeffrey Walton:
> Hi Everyone,
>
> We have a release candidate available at
> http://cryptopp.com/cryptopp563rc0.zip. Here are the checksums:
>
>     $ md5sum cryptopp563rc0.zip
>     78087372720287345ff2df7a494b816e
>
>     $ sha1sum cryptopp563rc0.zip
>     24f86f0c48a38577376e3de3717dbf2a1aff7659
>
>     $ sha256sum cryptopp563rc0.zip
>     07acb21dcbaade0e828731d9ce8a962582af7e9b83b76e63202df6a2cc612a0a
>
> It honors ABI/API and versioning requirements. As such, there are two
> unremediated issues:
>
>   * GCC's finding warning: deleting object of polymorphic class...
>     which has non-virtual destructor....
>   * UBSan's finding algparam.h:211:88: runtime error: reference
>     binding to null pointer of type 'const struct Integer'
>
> Both need to be fixed because they are C/C++ language violations.
>
>
> There's a diff in the ZIP describing precisely what changed from
> Crypto++ 5.6.2 (version 5.6.2 was SVN revision 541).
>
>
> Please report any problems you encounter.
>
Encountered already one  :(

 1. I don't think we can claim "good" /W4 compile on VS2015, as it even
    complains on /W3 (the throwing destructor issue we already discussed)
 2. If compiling with /W4 we get a load of C4100s warning about
    "unreferenced formal parameters" and some C4505s "unused local
    variable" and some "conditional expression is constant" and we get
    lots of these warnings.
 3. Linking to Crypto++ yields some issues breaking the ability to use it.

More specifically the below demo program lets VS2015's linker fail.
(assuming you put the RC into "cryptopp" in the sln's directory and run
the build of Crypto++ before)
Broken Modes: Release|x64, Debug|x64
One may need to replace "Win32" by "x86" depending on the locale.

I've no idea on how to fix the resulting linker errors.

BR

JPM

Demo:

// CryptoPPLinkFailDemo.cpp : Defines the entry point for the console 
application.

//

#include "stdafx.h"

#include "..\cryptopp\sha.h"

#include "..\cryptopp\osrng.h"

#include "..\cryptopp\integer.h"

#include <memory>

#if defined(_DEBUG) && defined(_WIN64) // Debug-x64

#pragma comment(lib,"..\\cryptopp\\x64\\Output\\Debug\\cryptlib.lib")

#elif defined(_DEBUG) && !defined(_WIN64) // Debug-x86

#pragma comment(lib,"..\\cryptopp\\Win32\\Output\\Debug\\cryptlib.lib")

#elif !defined(_DEBUG) && defined(_WIN64) // Release-x64

#pragma comment(lib,"..\\cryptopp\\x64\\Output\\Release\\cryptlib.lib")

#else // Release-x86

#pragma comment(lib,"..\\cryptopp\\Win32\\Output\\Release\\cryptlib.lib")

#endif

using namespace CryptoPP;

int main()

{

    AutoSeededRandomPool RNG;

    Integer Test(RNG, 2048);

    std::shared_ptr<byte> Buffer(new byte[Test.MinEncodedSize()]);

    std::shared_ptr<byte> Digest(new byte[16]);

    Test.Encode(Buffer.get(), Test.MinEncodedSize());

    SHA1().CalculateTruncatedDigest(Digest.get(), 16, Buffer.get(), 
Test.MinEncodedSize());

    printf("%x",Digest.get()[0]);

    return 0;

}

Errors:
1>cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol 
Baseline_Add
1>cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol 
Baseline_Sub
1>cryptlib.lib(sha.obj) : error LNK2001: unresolved external symbol 
X86_SHA256_HashBlocks
1>cryptlib.lib(rijndael.obj) : error LNK2001: unresolved external symbol 
Rijndael_Enc_AdvancedProcessBlocks
1>PathToMyProgram\CryptoPPLinkFailDemo\x64\Release\CryptoPPLinkFailDemo.exe : 
fatal error LNK1120: 4 unresolved externals


>
>
> -- 
> -- 
> You received this message because you are subscribed to the "Crypto++
> Users" Google Group.
> To unsubscribe, send an email to
> [email protected].
> More information about Crypto++ and this group is available at
> http://www.cryptopp.com.
> ---
> You received this message because you are subscribed to the Google
> Groups "Crypto++ Users" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected]
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout.

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to