On Monday, January 16, 2017 at 12:20:09 PM UTC-5, Andrew Marlow wrote:
>
> I am trying to move to version 565 and am finding several problems with 
> missing symbols. I find this on Solaris 11, RHEL 6.8 and Windows 7. This 
> issue report concentrates on Windows 7. I am using the Visual Studio 2015 
> compiler, update 3.
>
> My app fails to link because it fails to find various symbols from 
> base64.cpp. The symbols were:
>
> public: virtual void __cdecl 
> CryptoPP::Base64Encoder::IsolatedInitialize(class CryptoPP::NameValuePairs 
> const &)
> virtual void __cdecl CryptoPP::Base64Decoder::IsolatedInitialize(class 
> CryptoPP::NameValuePairs const &)
> static int const * __cdecl 
> CryptoPP::Base64Decoder::GetDecodingLookupArray(void)
>
> On examining the solution I see this file has been omitted! Adding 
> base64.cpp to the solution and rebuilding didn't make this error go away. 
> Looking at the code I see this is because the class is not decorated with 
> the usual Microsoft guff that would export all the public functions in the 
> class.
>

Right. The Base64Encoder is not part of the FIPS DLL. The FIPS DLL only 
includes the core FIPS 140-2 algorithms. Also see 
https://www.cryptopp.com/wiki/FIPS_DLL.
 

> This looks like a regression to me because our code has not changed in 
> this area and this worked on version 563 of cryptopp. Sure enough on 
> looking at the header file version 563 is decorated with CRYPTOPP_DLL.  
> With the encoder and decoder classes suitably hacked in 565 my app links ok.
>

Intersting. I just checked Crypto++ 5.6.2, and the Base64Encoder and 
Base64Decoder lack the symbol: 
https://github.com/weidai11/cryptopp/blob/789f81f048c9bc472c7e7596f49b02eadd6fc1fd/base64.h
 
.

Perhaps someone modified your local copy of the source files.

Some minor points:-
>
> On converting cryptdll.vcxproj to VC14 I see: Command line warning D9002: 
> ignoring unknown option '/arch:SSE2'. This is just a slight wrinkle.
>

Yeah, that's a Microsoft bug. Its needed for VS2008 and VS2010 (IIRC), and 
then later Microsoft compilers produce a warning. Also see 
https://connect.microsoft.com/VisualStudio/feedback/details/1217151/command-line-warning-d9002-ignoring-unknown-option-arch-sse2
 
.

It would help if the vcxproj filenames incorporated something like vc10 or 
> vc14 to indicate to the reader which version of Visual Studio they are for.
>

The Visual Studio project files are VS2010.

The debug artifacts do not get a D put on the end of the name like they 
> used to.
>

 Hmmm... Searching for 'cryptlibd' in the Crypto++ 5.6.2 project file does 
not hit. Also see 
https://github.com/weidai11/cryptopp/blob/789f81f048c9bc472c7e7596f49b02eadd6fc1fd/cryptlib.vcproj.

Perhaps someone modified your local copy of the project files.

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