Package: libcrypto++6
Version: 5.6.4-8
Followup-For: Bug #932620

Came up against the same problem.  Test case below:

================================================================
// Build with
// $ make LDFLAGS=$(pkg-config --libs libcrypto++) cryptopp-link

#include <iostream>
#include <crypto++/blake2.h>
#include <crypto++/hex.h>

#define DIGEST_SIZE CryptoPP::BLAKE2b::DIGESTSIZE


static std::string
hash_key (const std::list<std::string> &key)
{
  CryptoPP::BLAKE2b hasher(DIGEST_SIZE);
  for (auto& s : key)
    {
      hasher.Update(reinterpret_cast<const byte *>(s.data()),
                    s.size());
    }

  byte digest[DIGEST_SIZE];
  hasher.Final(&digest[0]);

  std::string digest_str;
  CryptoPP::HexEncoder(new CryptoPP::StringSink(digest_str))
    .Put(&digest[0], DIGEST_SIZE);

  return digest_str;
}

int main (int argc, char **argv)
{
  std::list<std::string> key;

  for (int i = 0; i < argc; ++i)
    {
      key.push_back (argv[i]);
    }

  std::string hash( hash_key(key) );
  std::cout << hash << std::endl;

  return 0;
}
================================================================


Produces:

================================================================
g++   -lcrypto++  cryptopp-link.cpp   -o cryptopp-link
/usr/bin/ld: /tmp/cckaN0JV.o: in function 
`hash_key(std::__cxx11::list<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > > > const&)':
cryptopp-link.cpp:(.text+0x2be): undefined reference to 
`CryptoPP::BLAKE2_Base<unsigned long long, true>::Update(unsigned char const*, 
unsigned long)'
/usr/bin/ld: /tmp/cckaN0JV.o: in function `CryptoPP::BLAKE2b::BLAKE2b(bool, 
unsigned int)':
cryptopp-link.cpp:(.text._ZN8CryptoPP7BLAKE2bC2Ebj[_ZN8CryptoPP7BLAKE2bC5Ebj]+0x25):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::BLAKE2_Base(bool, unsigned int)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP7BLAKE2bE[_ZTVN8CryptoPP7BLAKE2bE]+0x88):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::UncheckedSetKey(unsigned char const*, unsigned int, 
CryptoPP::NameValuePairs const&)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP7BLAKE2bE[_ZTVN8CryptoPP7BLAKE2bE]+0xa8):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::Update(unsigned char const*, unsigned long)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP7BLAKE2bE[_ZTVN8CryptoPP7BLAKE2bE]+0xb0):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::Restart()'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP7BLAKE2bE[_ZTVN8CryptoPP7BLAKE2bE]+0xb8):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP7BLAKE2bE[_ZTVN8CryptoPP7BLAKE2bE]+0xf0):
 undefined reference to `non-virtual thunk to CryptoPP::BLAKE2_Base<unsigned 
long long, true>::Update(unsigned char const*, unsigned long)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP7BLAKE2bE[_ZTVN8CryptoPP7BLAKE2bE]+0x108):
 undefined reference to `non-virtual thunk to CryptoPP::BLAKE2_Base<unsigned 
long long, true>::Restart()'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP7BLAKE2bE[_ZTVN8CryptoPP7BLAKE2bE]+0x148):
 undefined reference to `non-virtual thunk to CryptoPP::BLAKE2_Base<unsigned 
long long, true>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE[_ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE]+0x88):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::UncheckedSetKey(unsigned char const*, unsigned int, 
CryptoPP::NameValuePairs const&)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE[_ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE]+0xa8):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::Update(unsigned char const*, unsigned long)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE[_ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE]+0xb0):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::Restart()'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE[_ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE]+0xb8):
 undefined reference to `CryptoPP::BLAKE2_Base<unsigned long long, 
true>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE[_ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE]+0xf0):
 undefined reference to `non-virtual thunk to CryptoPP::BLAKE2_Base<unsigned 
long long, true>::Update(unsigned char const*, unsigned long)'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE[_ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE]+0x108):
 undefined reference to `non-virtual thunk to CryptoPP::BLAKE2_Base<unsigned 
long long, true>::Restart()'
/usr/bin/ld: 
/tmp/cckaN0JV.o:(.data.rel.ro._ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE[_ZTVN8CryptoPP11BLAKE2_BaseIyLb1EEE]+0x148):
 undefined reference to `non-virtual thunk to CryptoPP::BLAKE2_Base<unsigned 
long long, true>::TruncatedFinal(unsigned char*, unsigned long)'
collect2: error: ld returned 1 exit status
make: *** [<builtin>: cryptopp-link] Error 1
================================================================



-- System Information:
Debian Release: 10.4
  APT prefers stable
  APT policy: (991, 'stable'), (500, 'stable-updates'), (500, 'stable-debug'), 
(500, 'oldstable-updates'), (500, 'oldstable-debug'), (500, 'oldoldstable'), 
(500, 'oldstable'), (70, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.8.0-linux-latest-34 (SMP w/16 CPU cores; PREEMPT)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages libcrypto++6 depends on:
ii  libc6                2.28-10
ii  libgcc-s1 [libgcc1]  10.2.0-6
ii  libgcc1              1:9.2.1-16
ii  libstdc++6           9.2.1-16

libcrypto++6 recommends no packages.

libcrypto++6 suggests no packages.

-- no debconf information

Reply via email to