Error: incomplete type when using HMAC_CTX in a C ++ project

I am trying to compile this ndn-cxx library in my laptop. I already tried on another computer, and it compiled successfully, but now I get this error, and I think it has to do with opening openssl. I verify that I have openssl on my laptop using sudo apt-cache search libssl | grep SSL and result:

  • libssl-ocaml - OCaml bindings for OpenSSL (runtime)
  • libssl-ocaml-dev - OCaml bindings for OpenSSL
  • libssl0.9.8 - SSL Shared Libraries
  • libsslcommon2 - enterprise messaging - SSL shared libraries
  • libsslcommon2-dev - enterprise messaging - common SSL development files

Error trying to compile library:

../src/security/transform/hmac-filter.cpp:49:12: error: field ‘m_context’ has incomplete type
   HMAC_CTX m_context;
            ^

../src/security/transform/hmac-filter.cpp: In constructor 
‘ndn::security::transform::HmacFilter::Impl::Impl()’:
../src/security/transform/hmac-filter.cpp:35:20: error: ‘m_context’ was not declared in this scope
     HMAC_CTX_init(&m_context);
                    ^

../src/security/transform/hmac-filter.cpp:35:29: error: ‘HMAC_CTX_init’ was not declared in this scope
     HMAC_CTX_init(&m_context);
                             ^

../src/security/transform/hmac-filter.cpp: In destructor ‘ndn::security::transform::HmacFilter::Impl::~Impl()’:
../src/security/transform/hmac-filter.cpp:40:23: error: ‘m_context’ was not declared in this scope
     HMAC_CTX_cleanup(&m_context);
                       ^    

../src/security/transform/hmac-filter.cpp:40:32: error: ‘HMAC_CTX_cleanup’ was not declared in this scope
     HMAC_CTX_cleanup(&m_context);
                                ^

../src/security/transform/hmac-filter.cpp: In member function ‘ndn::security::transform::HmacFilter::Impl::operator HMAC_CTX*()’:
../src/security/transform/hmac-filter.cpp:45:13: error: ‘m_context’ was not declared in this scope
     return &m_context;
             ^

../src/security/transform/hmac-filter.cpp:46:3: warning: control reaches end of non-void function [-Wreturn-type]
   }
   ^
+4
1

, #if OPENSSL_VERSION_NUMBER < 0x1010000fL struct HMAC_CTX. OpenSSL ( > 1.1.0) HMAX_CTX *. , waf , OPENSSL_VERSION_NUMBER , , , OpenSSL, HMAC_CTX, .

grep OPENSSL .waf-tools/openssl.py , , OpenSSL.

+2

Source: https://habr.com/ru/post/1660532/


All Articles