wolfssl icon indicating copy to clipboard operation
wolfssl copied to clipboard

Cannot build wolfssl with liboqs integration

Open notyan opened this issue 7 months ago • 2 comments

Version

wolfssl-5.7.2

Description

Description

trying yo install and build wolfSSL with liboqs following the https://github.com/wolfSSL/wolfssl/blob/master/INSTALL point 15 on debian 11 Following all the step provided by the documentation, but the wolfssl build have this problem

Here the instalation of liboqs output

$ sudo make install
[  2%] Built target sphincs_sha2_192f_simple_avx2
[  3%] Built target common
[  3%] Built target xkcp_low_keccakp_1600times4_avx2
[  3%] Built target xkcp_low_keccakp_1600_avx2
[  4%] Built target xkcp_low_keccakp_1600times4_serial
[  4%] Built target xkcp_low_keccakp_1600_plain64
[  6%] Built target bike_l5
[  8%] Built target bike_l3
[  9%] Built target bike_l1
[  9%] Built target kem_bike
[ 10%] Built target frodokem_avx2
[ 11%] Built target frodokem
[ 13%] Built target ntruprime_sntrup761_avx2
[ 15%] Built target ntruprime_sntrup761_clean
[ 18%] Built target classic_mceliece_8192128f_avx
[ 19%] Built target classic_mceliece_8192128f_vec
[ 21%] Built target classic_mceliece_6960119f_vec
[ 23%] Built target classic_mceliece_8192128_avx
[ 25%] Built target classic_mceliece_6960119_avx
[ 28%] Built target classic_mceliece_348864_avx
[ 29%] Built target classic_mceliece_8192128_vec
[ 31%] Built target classic_mceliece_460896f_vec
[ 33%] Built target classic_mceliece_6688128_avx
[ 34%] Built target classic_mceliece_348864f_vec
[ 37%] Built target classic_mceliece_348864f_avx
[ 38%] Built target classic_mceliece_348864_vec
[ 39%] Built target classic_mceliece_6688128_vec
[ 41%] Built target classic_mceliece_460896_vec
[ 44%] Built target classic_mceliece_6688128f_avx
[ 46%] Built target classic_mceliece_460896_avx
[ 48%] Built target classic_mceliece_6960119f_avx
[ 50%] Built target classic_mceliece_460896f_avx
[ 51%] Built target classic_mceliece_6688128f_vec
[ 53%] Built target classic_mceliece_6960119_vec
[ 54%] Built target hqc_128_clean
[ 55%] Built target hqc_192_avx2
[ 56%] Built target hqc_128_avx2
[ 57%] Built target hqc_256_avx2
[ 58%] Built target hqc_192_clean
[ 58%] Built target hqc_256_clean
[ 59%] Built target kyber_512_ref
[ 60%] Built target kyber_512_avx2
[ 61%] Built target kyber_768_avx2
[ 62%] Built target kyber_1024_ref
[ 63%] Built target kyber_1024_avx2
[ 64%] Built target kyber_768_ref
[ 65%] Built target dilithium_2_ref
[ 66%] Built target dilithium_5_ref
[ 67%] Built target dilithium_3_ref
[ 68%] Built target dilithium_3_avx2
[ 69%] Built target dilithium_5_avx2
[ 70%] Built target dilithium_2_avx2
[ 71%] Built target falcon_1024_clean
[ 72%] Built target falcon_1024_avx2
[ 73%] Built target falcon_512_avx2
[ 73%] Built target falcon_512_clean
[ 74%] Built target sphincs_shake_128f_simple_clean
[ 75%] Built target sphincs_shake_256s_simple_clean
[ 76%] Built target sphincs_shake_256s_simple_avx2
[ 77%] Built target sphincs_sha2_256s_simple_clean
[ 78%] Built target sphincs_sha2_128f_simple_avx2
[ 79%] Built target sphincs_sha2_256f_simple_avx2
[ 80%] Built target sphincs_sha2_256f_simple_clean
[ 81%] Built target sphincs_sha2_128s_simple_avx2
[ 82%] Built target sphincs_shake_256f_simple_avx2
[ 83%] Built target sphincs_sha2_128f_simple_clean
[ 84%] Built target sphincs_sha2_128s_simple_clean
[ 85%] Built target sphincs_sha2_192s_simple_avx2
[ 86%] Built target sphincs_shake_128f_simple_avx2
[ 87%] Built target sphincs_shake_256f_simple_clean
[ 88%] Built target sphincs_shake_128s_simple_clean
[ 90%] Built target sphincs_sha2_256s_simple_avx2
[ 91%] Built target sphincs_sha2_192f_simple_clean
[ 92%] Built target sphincs_shake_128s_simple_avx2
[ 93%] Built target sphincs_sha2_192s_simple_clean
[ 94%] Built target sphincs_shake_192f_simple_clean
[ 95%] Built target sphincs_shake_192f_simple_avx2
[ 96%] Built target sphincs_shake_192s_simple_clean
[ 97%] Built target sphincs_shake_192s_simple_avx2
[ 97%] Built target oqs
[ 97%] Built target speed_sig
[ 97%] Built target test_aes
[ 98%] Built target speed_common
[ 98%] Built target test_hash
[ 98%] Built target example_sig
[ 98%] Built target test_sha3
[ 98%] Built target example_kem
[ 98%] Built target dump_alg_info
[ 99%] Built target test_kem_mem
[100%] Built target kat_kem
[100%] Built target test_kem
[100%] Built target speed_kem
[100%] Built target kat_sig
[100%] Built target test_sig
[100%] Built target test_sig_mem
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/cmake/liboqs/liboqsConfig.cmake
-- Installing: /usr/local/lib/cmake/liboqs/liboqsConfigVersion.cmake
-- Installing: /usr/local/lib/pkgconfig/liboqs.pc
-- Installing: /usr/local/lib/liboqs.a
-- Up-to-date: /usr/local/lib/cmake/liboqs/liboqsTargets.cmake
-- Installing: /usr/local/lib/cmake/liboqs/liboqsTargets-noconfig.cmake
-- Installing: /usr/local/include/oqs/oqs.h
-- Installing: /usr/local/include/oqs/common.h
-- Installing: /usr/local/include/oqs/rand.h
-- Installing: /usr/local/include/oqs/aes.h
-- Installing: /usr/local/include/oqs/sha2.h
-- Installing: /usr/local/include/oqs/sha3.h
-- Installing: /usr/local/include/oqs/sha3x4.h
-- Installing: /usr/local/include/oqs/kem.h
-- Installing: /usr/local/include/oqs/sig.h
-- Up-to-date: /usr/local/include/oqs/kem_bike.h
-- Up-to-date: /usr/local/include/oqs/kem_frodokem.h
-- Up-to-date: /usr/local/include/oqs/kem_ntruprime.h
-- Installing: /usr/local/include/oqs/kem_classic_mceliece.h
-- Installing: /usr/local/include/oqs/kem_hqc.h
-- Installing: /usr/local/include/oqs/kem_kyber.h
-- Installing: /usr/local/include/oqs/sig_dilithium.h
-- Installing: /usr/local/include/oqs/sig_falcon.h
-- Installing: /usr/local/include/oqs/sig_sphincs.h
-- Installing: /usr/local/include/oqs/oqsconfig.h

Here the configure i set and no error on running configure script

$ ./configure --with-liboqs --enable-experimental  
Configuration summary for wolfssl version 5.7.2

   * Installation prefix:        /usr/local
   * System type:                pc-linux-gnu
   * Host CPU:                   x86_64
   * C Compiler:                 gcc
   * C Flags:                       -Werror -Wno-pragmas -Wall -Wextra -Wunknown-pragmas --param=ssp-buffer-size=1 -Waddress -Warray-bounds -Wbad-function-cast -Wchar-subscripts -Wcomment -Wfloat-equal -Wformat-security -Wformat=2 -Wmaybe-uninitialized -Wmissing-field-initializers -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wnormalized=id -Woverride-init -Wpointer-arith -Wpointer-sign -Wshadow -Wsign-compare -Wstrict-overflow=1 -Wswitch-enum -Wundef -Wunused -Wunused-result -Wunused-variable -Wwrite-strings -fwrapv
   * C++ Compiler:
   * C++ Flags:
   * CPP Flags:
   * CCAS Flags:
   * LD Flags:
   * LIB Flags:                   -pie -z relro -z now -Werror
   * Library Suffix:
   * Debug enabled:              no
   * Coverage enabled:
   * Warnings as failure:        yes
   * make -j:                    3
   * VCS checkout:               yes

   Features
   * Experimental settings:      Allowed
   * FIPS:                       no
   * Single threaded:            no
   * Filesystem:                 yes
   * OpenSSH Build:              no
   * OpenSSL Extra API:          no
   * OpenSSL Coexist:            no
   * Old Names:                  yes
   * Max Strength Build:         no
   * Distro Build:               no
   * Reproducible Build:         no
   * Side-channel Hardening:     yes
   * Single Precision Math:      no
   * SP implementation:          all
   * Fast Math:                  no
   * Heap Math:                  no
   * Assembly Allowed:           yes
   * sniffer:                    no
   * snifftest:                  no
   * ARC4:                       no
   * AES:                        yes
   * AES-NI:                     no
   * AES-CBC:                    yes
   * AES-CBC length checks:      no
   * AES-GCM:                    yes
   * AES-GCM streaming:          no
   * AES-CCM:                    no
   * AES-CTR:                    no
   * AES-CFB:                    no
   * AES-OFB:                    no
   * AES-XTS:                    no
   * AES-XTS streaming:          no
   * AES-SIV:                    no
   * AES-EAX:                    no
   * AES Bitspliced:             no
   * AES Key Wrap:               no
   * ARIA:                       no
   * DES3:                       no
   * DES3 TLS Suites:            no
   * Camellia:                   no
   * CUDA:                       no
   * SM4-ECB:                    no
   * SM4-CBC:                    no
   * SM4-CTR:                    no
   * SM4-GCM:                    no
   * SM4-CCM:                    no
   * NULL Cipher:                no
   * MD2:                        no
   * MD4:                        no
   * MD5:                        yes
   * RIPEMD:                     no
   * SHA:                        yes
   * SHA-224:                    yes
   * SHA-384:                    yes
   * SHA-512:                    yes
   * SHA3:                       yes
   * SHAKE128:                   no
   * SHAKE256:                   no
   * SM3:                        no
   * BLAKE2:                     no
   * BLAKE2S:                    no
   * SipHash:                    no
   * CMAC:                       no
   * keygen:                     no
   * certgen:                    no
   * certreq:                    no
   * certext:                    no
   * certgencache:               no
   * CHACHA:                     yes
   * XCHACHA:                    no
   * Hash DRBG:                  yes
   * MmemUse Entropy:
   * (AKA: wolfEntropy):         no
   * PWDBASED:                   yes
   * Encrypted keys:             no
   * scrypt:                     no
   * wolfCrypt Only:             no
   * HKDF:                       yes
   * HPKE:                       no
   * X9.63 KDF:                  no
   * SRTP-KDF:                   no
   * PSK:                        no
   * Poly1305:                   yes
   * LEANPSK:                    no
   * LEANTLS:                    no
   * RSA:                        yes
   * RSA-PSS:                    yes
   * DSA:                        no
   * DH:                         yes
   * DH Default Parameters:      yes
   * ECC:                        yes
   * ECC Custom Curves:          no
   * ECC Minimum Bits:           224
   * FPECC:                      no
   * ECC_ENCRYPT:                no
   * Brainpool:                  no
   * SM2:                        no
   * CURVE25519:                 no
   * ED25519:                    no
   * ED25519 streaming:          no
   * CURVE448:                   no
   * ED448:                      no
   * ED448 streaming:            no
   * LMS:                        no
   * LMS wolfSSL impl:
   * XMSS:                       no
   * XMSS wolfSSL impl:
   * KYBER:                      no
   * KYBER wolfSSL impl:         no
   * DILITHIUM:                  no
   * ECCSI                       no
   * SAKKE                       no
   * ASN:                        yes
   * Anonymous cipher:           no
   * CODING:                     yes
   * MEMORY:                     yes
   * I/O POOL:                   no
   * wolfSentry:                 no
   * LIGHTY:                     no
   * WPA Supplicant:             no
   * HAPROXY:                    no
   * STUNNEL:                    no
   * tcpdump:                    no
   * libssh2:                    no
   * ntp:                        no
   * rsyslog:                    no
   * Apache httpd:               no
   * NGINX:                      no
   * OpenResty:                  no
   * ASIO:                       no
   * LIBWEBSOCKETS:              no
   * Qt:                         no
   * Qt Unit Testing:            no
   * SIGNAL:                     no
   * chrony:                     no
   * strongSwan:                 no
   * OpenLDAP:                   no
   * hitch:                      no
   * memcached:                  no
   * ERROR_STRINGS:              yes
   * DTLS:                       no
   * DTLS v1.3:                  no
   * SCTP:                       no
   * SRTP:                       no
   * Indefinite Length:          no
   * Multicast:                  no
   * SSL v3.0 (Old):             no
   * TLS v1.0 (Old):             no
   * TLS v1.1 (Old):             no
   * TLS v1.2:                   yes
   * TLS v1.3:                   yes
   * RPK:                        no
   * Post-handshake Auth:        no
   * Early Data:                 no
   * QUIC:                       no
   * Send State in HRR Cookie:   undefined
   * OCSP:                       no
   * OCSP Stapling:              no
   * OCSP Stapling v2:           no
   * CRL:                        no
   * CRL-MONITOR:                no
   * Persistent session cache:   no
   * Persistent cert    cache:   no
   * Atomic User Record Layer:   no
   * Public Key Callbacks:       no
   * libxmss:                    no
   * liblms:                     no
   * liboqs:                     yes
   * Whitewood netRandom:        no
   * Server Name Indication:     yes
   * ALPN:                       no
   * Maximum Fragment Length:    no
   * Trusted CA Indication:      no
   * Truncated HMAC:             no
   * Supported Elliptic Curves:  yes
   * FFDHE only in client:       no
   * Session Ticket:             no
   * Extended Master Secret:     yes
   * Renegotiation Indication:   no
   * Secure Renegotiation:       no
   * Fallback SCSV:              no
   * Keying Material Exporter:   no
   * All TLS Extensions:         no
   * S/MIME:                     no
   * PKCS#7:                     no
   * PKCS#8:                     yes
   * PKCS#11:                    no
   * PKCS#12:                    yes
   * wolfSSH:                    no
   * wolfEngine:                 no
   * wolfTPM:                    no
   * wolfCLU:                    no
   * wolfSCEP:                   no
   * Secure Remote Password:     no
   * Small Stack:                no
   * Linux Kernel Module:        no
   * valgrind unit tests:        no
   * LIBZ:                       no
   * Examples:                   yes
   * Crypt tests:                yes
   * Stack sizes in tests:       no
   * Heap stats in tests:        no
   * Asynchronous Crypto:        no
   * Asynchronous Crypto (sim):  no
   * Cavium Nitrox:              no
   * Cavium Octeon (Sync):       no
   * Intel Quick Assist:         no
   * ARM ASM:                    no
   * ARM ASM SHA512/SHA3 Crypto  no
   * ARM ASM SM3/SM4 Crypto      no
   * RISC-V ASM                  no
   * Write duplicate:            no
   * Xilinx Hardware Acc.:       no
   * Inline Code:                yes
   * Linux AF_ALG:               no
   * Linux KCAPI:                no
   * Linux devcrypto:            no
   * PK callbacks:               no
   * Crypto callbacks:           no
   * i.MX CAAM:                  no
   * IoT-Safe:                   no
   * IoT-Safe HWRNG:             no
   * NXP SE050:                  no
   * Maxim Integrated MAXQ10XX:  no
   * PSA:                        no
   * System CA certs:            yes
   * Dual alg cert support:      no
   * ERR Queues per Thread:      yes
   * rwlock:                     no
   * keylog export:              no
   * AutoSAR :                   no

---
./configure flags: '--with-liboqs' '--enable-experimental'

And this is the error i get when i try to build wolfssl

$ ~/wolfssl (master)> make all
make -j3  all-recursive
make[1]: Entering directory '/home/royan/wolfssl'
make[2]: Entering directory '/home/royan/wolfssl'
make[2]: warning: -j3 forced in submake: resetting jobserver mode.
  CC       wolfcrypt/src/port/liboqs/src_libwolfssl_la-liboqs.lo
  CC       tests/unit_test-api.o
  CC       tests/unit_test-suites.o
In file included from tests/api.c:303:
./wolfssl/wolfcrypt/dilithium.h:486:39: error: ‘OQS_SIG_ml_dsa_87_ipd_length_public_key’ undeclared here (not in a function); did you mean ‘OQS_SIG_falcon_512_length_public_key’?
  486 | #define DILITHIUM_LEVEL5_PUB_KEY_SIZE OQS_SIG_ml_dsa_87_ipd_length_public_key
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./wolfssl/wolfcrypt/dilithium.h:486:39: note: in definition of macro ‘DILITHIUM_LEVEL5_PUB_KEY_SIZE’
  486 | #define DILITHIUM_LEVEL5_PUB_KEY_SIZE OQS_SIG_ml_dsa_87_ipd_length_public_key
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./wolfssl/wolfcrypt/dilithium.h:546:12: note: in expansion of macro ‘DILITHIUM_MAX_PUB_KEY_SIZE’
  546 |     byte p[DILITHIUM_MAX_PUB_KEY_SIZE];
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
./wolfssl/wolfcrypt/dilithium.h:484:39: error: ‘OQS_SIG_ml_dsa_87_ipd_length_secret_key’ undeclared here (not in a function); did you mean ‘OQS_SIG_dilithium_5_length_secret_key’?
  484 | #define DILITHIUM_LEVEL5_KEY_SIZE     OQS_SIG_ml_dsa_87_ipd_length_secret_key
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./wolfssl/wolfcrypt/dilithium.h:484:39: note: in definition of macro ‘DILITHIUM_LEVEL5_KEY_SIZE’
  484 | #define DILITHIUM_LEVEL5_KEY_SIZE     OQS_SIG_ml_dsa_87_ipd_length_secret_key
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./wolfssl/wolfcrypt/dilithium.h:547:12: note: in expansion of macro ‘DILITHIUM_MAX_KEY_SIZE’
  547 |     byte k[DILITHIUM_MAX_KEY_SIZE];
      |            ^~~~~~~~~~~~~~~~~~~~~~
  CC       tests/unit_test-hash.o
  CC       tests/unit_test-w64wrapper.o
  CC       tests/unit_test-srp.o
  CC       tests/unit_test-quic.o
  CC       examples/client/tests_unit_test-client.o
  CC       examples/server/tests_unit_test-server.o
make[2]: *** [Makefile:8224: tests/unit_test-api.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/royan/wolfssl'
make[1]: *** [Makefile:8578: all-recursive] Error 1
make[1]: Leaving directory '/home/royan/wolfssl'
make: *** [Makefile:5159: all] Error 2

notyan avatar Jul 13 '24 12:07 notyan