mpeylo / cmpossl

An OpenSSL-based implementation of the Certificate Management Protocol (CMP), defined in IETF RFCs 4210, 4211, and 6712. It is being extended according to the emerging RFCs 'CMP Updates' (CMPv3), 'CMP Algorithms', and 'Lightweight CMP Profile'.
https://github.com/mpeylo/cmpossl/wiki
Other
35 stars 13 forks source link

Unable to compile the standalone cmp library with openssl 1.1.1f #222

Closed lucamaina closed 2 years ago

lucamaina commented 2 years ago

Hello Team, I tried to compile and use the cmp library as standalone but i am unable to include cmp.h and crmf.h in my application because of some errors.

Following the issue https://github.com/mpeylo/cmpossl/issues/221#issuecomment-947091765 made by @NAVEENJOYALEX i followed the instructions proposed by @DDvO to compile from genCMPClient.

I tried to compile with different commands, as:

~/gencmpclient$ make 
~/gencmpclient$ make build_cmpossl
~/gencmpclient$ make install

~/gencmpclient/cmpossl$ make
~/gencmpclient/cmpossl$ make install

The compilation seems to be ok, but when I include cmp.h and crmf.h in my application obtain a list of errors like:

In file included from /home/prova_cmp/main.c:11:
/usr/include/openssl/crmf.h:51:27: error: parameter 1 has incomplete type
   51 | DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG)
      |                           ^~~~~~~~~~~~~
/usr/include/openssl/crmf.h: In function ‘DECLARE_ASN1_DUP_FUNCTION’:
/usr/include/openssl/crmf.h:52:1: error: expected declaration specifiers before ‘SKM_DEFINE_STACK_OF_INTERNAL’
   52 | SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/developer/BCOMM/prova_cmp/main.c:11:
/usr/include/openssl/crmf.h:80:42: error: storage class specified for parameter ‘OSSL_CRMF_PBMPARAMETER’
   80 | typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER;
      |                                          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/objects.h:15,
                 from /usr/include/openssl/evp.h:28,
                 from /usr/include/openssl/x509.h:18,
                 from /usr/include/openssl/x509v3.h:14,
                 from /usr/include/openssl/crmf.h:28,
                 from /home/developer/BCOMM/prova_cmp/main.c:11:
/usr/include/openssl/crmf.h:81:1: error: expected declaration specifiers before ‘OSSL_CRMF_PBMPARAMETER’
   81 | DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER)
      | ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/crmf.h:81:1: error: expected declaration specifiers or ‘...’ before ‘OSSL_CRMF_PBMPARAMETER’
   81 | DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER)
      | ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/crmf.h:81:1: error: expected declaration specifiers before ‘OSSL_CRMF_PBMPARAMETER’
   81 | DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER)
      | ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/crmf.h:81:1: error: expected declaration specifiers or ‘...’ before ‘OSSL_CRMF_PBMPARAMETER’
   81 | DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER)
      | ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/crmf.h:81:1: error: storage class specified for parameter ‘OSSL_CRMF_PBMPARAMETER_it’
   81 | DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER)
      | ^~~~~~~~~~~~~~~~~~~~~~
...

Thank you.

lucamaina commented 2 years ago

Solved, was an issue about different include file.