> We have a new release candidate available at 
> https://www.cryptopp.com/cryptopp563rc1.zip. Here are the checksums:
>
>   $ md5sum cryptopp563rc1.zip 
>   a33dd656de4567e02e64704b92820f9f
>
>   $ sha1sum cryptopp563rc1.zip 
>   dd6f54fb68d4133f23dff85d0b106a1053058ad8
>
>   $ sha256sum cryptopp563rc1.zip 
>   5628e248291a8f238f0d929d7d956fb4ccf836d65958172de11488b9cd1abc4a
>
> RC1 performs more warning cleanup under Visual Studio.
>
> I just compiled it and was *very* impressed. The number of warnings 
> reduced from 3.5k+ down to 5/9 :) Really good job there. Although it looks 
> like you just suppressed them ;)
>
> It also clears some issues raised by Enterprise Analysis (/analyze). 
> Finally, RC1 clears a Multiarch/Fat binary issue under OS X.
>
> 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.
>
> We still don't get a clean compile on VS 2015 though.
>

Here's what the release notes have to say:

      * cleared most MSVC warnings with /W4

 We don't claim we cleared all of them.

We still need to clean those LNK4221s which can be done by simply adding 
> the required line (exclude from build) to the paths in cryptlib.vcproj for 
> all configurations of strciphr.cpp, simple.cpp, polynomi.cpp, algebra.cpp, 
> like already done for eccrypto.cpp. It doesn't work for me doing this with 
> an editor though so we'd have to use something like VS2005 (the least 
> version we still support) to set the flags.
>

This issue finds its roots in C++ compiler workarounds in the 1990s. I 
recall this issue because I was doing my CompSci undergrad work at the 
time, and I used Visual Studio 5.0. There was an MSDN article that stated 
to include the implementation in the header so the compiler could find the 
bodies/implementations:

    // eccrypto.h
    class SomeECCryptoClass
    {
        ...
    }

    #include eccrytpo.cpp

Then, in eccrypto.cpp::

    // The implementation
    SomeECCryptoClass::SomeECCryptoClass() { ... }
 

> We also get a strange warning on algparam.h line 35 (C4459) "declaration 
> of 'cryptopp_assert_35' hides global declaration", there seems to be no 
> official MS documentation about this one though. I've no clue about to fix 
> this one as it references StringSource and fipstest.cpp line 35 which is a 
> CRYPTOPP_COMPILE_ASSERT.
>

Yeah, that one is kind of odd. It seems to be a one-off, so its a lower 
priority at the moment.
 

> I'm sad to have to tell you that the 64-bit builds of *all* projects 
> except cryptlib (=cryptest, cryptopp) are broken and result in a bunch of 
> "error LNK2001: unresolved external symbol ...". I suspect that dlltest 
> works because it doesn't link any of the affected functions.
>

>From the README:

*** MSVC-Specific Information ***

    On Windows, Crypto++ can be compiled into 3 forms: a static library
    including all algorithms, a DLL with only FIPS Approved algorithms, and
    a static library with only algorithms not in the DLL.
    (FIPS Approved means Approved according to the FIPS 140-2 standard.)
    The DLL may be used by itself, or it may be used together with the 
second
    form of the static library. MSVC project files are included to build
    all three forms, and sample applications using each of the three forms
    are also included.

    To compile Crypto++ with MSVC, open the "cryptest.dsw" (for MSVC 6 and 
MSVC .NET 
    2003) or "cryptest.sln" (for MSVC 2005 - 2010) workspace file and build 
one or 
   more of the following projects:

    cryptopp - This builds the DLL. Please note that if you wish to use 
Crypto++
      as a FIPS validated module, you must use a pre-built DLL that has 
undergone
      the FIPS validation process instead of building your own.
    dlltest - This builds a sample application that only uses the DLL.
      cryptest Non-DLL-Import Configuration - This builds the full static 
library
      along with a full test driver.
    cryptest DLL-Import Configuration - This builds a static library 
containing
      only algorithms not in the DLL, along with a full test driver that 
uses
      both the DLL and the static library.

I'm not really going to spend any time on the DLL projects because its an 
evolutionary dead end. If you want a DLL, then wrap the static library 
after changing /MT or /MTd to /MD or /MDd in the Cryptlib project.

Jeff

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