Git Product home page Git Product logo

open-quantum-safe / boringssl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google/boringssl

31.0 31.0 16.0 144.81 MB

Fork of BoringSSL that includes prototype quantum-resistant key exchange and authentication in the TLS handshake based on liboqs

Home Page: https://openquantumsafe.org/

License: Other

CMake 0.82% C++ 25.11% C 30.67% Perl 8.09% Shell 0.07% Go 7.80% Assembly 25.25% Python 0.33% CSS 0.01% Raku 0.10% Rust 1.00% Starlark 0.75%
cryptography post-quantum tls

boringssl's People

Contributors

achernya avatar agl avatar andres-erbsen avatar baentsch avatar botovq avatar briansmith avatar christianpaquin avatar codebytere avatar davidben avatar dmcardle avatar doughd avatar dstebila avatar dvorak42 avatar ghedo avatar haavardmolland avatar joshlf avatar kreichgauer avatar nharper avatar nico avatar nopsledder avatar nornagon avatar pi-314159 avatar piotrsikora avatar prbprbprb avatar raytonne avatar shishkander avatar tamaspetz avatar tocarip avatar varomodt avatar xvzcf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boringssl's Issues

Boringssl install cannot find libssl.so

Hello, I have tried a docker container and a new vm and I am facing issues installing liboqs then boringssl.
-- Build files have been written to: /home/pi/oqs/boringssl/build
[393/447] Linking CXX shared library ssl/libssl.so
FAILED: ssl/libssl.so

Steps I used to install
it clone --branch master https://github.com/open-quantum-safe/boringssl.git

BORINGSSL_DIR=$PWD/boringssl

#Build liboqs
#------------

git clone https://github.com/open-quantum-safe/liboqs.git
cd liboqs

rm -rf build
mkdir build && cd build

cmake -G"Ninja" -DCMAKE_INSTALL_PREFIX=$BORINGSSL_DIR/oqs -DOQS_USE_OPENSSL=OFF ..

ninja
sudo ninja install

#Build OQS BoringSSL
#-------------------

cd $BORINGSSL_DIR
rm -rf build
mkdir build && cd build

cmake -DBUILD_SHARED_LIBS=ON -GNinja ..

ninja

Fix list of KEMS to be sent in initial ClientHello

The client should by default send a small and fixed number of supported KEMS in its ClientHello. If functionality with additional curves is desired, they can be specified either at compile time or run time.

Boringssl Test on lsquic

Hello, I found a quic implementation in C that uses boringssl for the transport layer. I thought swapping the SSL layer with oqs-boringssl will allow for post-quantum certs to work. I am not sure if there is an issue with my certificate generation but I get this error when I try to establish a connection with post-quantum certificates.
SSL_CTX_use_PrivateKey_file failed

Connection terminate after handshake

Is there an option in BoringSSL to terminate the connection after handshake? Currently after the connection, there is an active connection and the only way to stop it is with a ctrl+c. So, I am just wondering if there is another option.

Fails to compile with current liboqs version

Tried to follow the standard instructions to compile BoringSSL with liboqs on Ubuntu and it seems liboqs has inconsistencies with BIKE. Would this be an issue?

The liboqs commit is 44cbde234a82813a181b4cc3c1330e56b253858f.

See the output below:

osboxes@osboxes:~$git clone --branch main --single-branch --depth 1 https://github.com/open-quantum-safe/liboqs.git
osboxes@osboxes:~$cd liboqs
osboxes@osboxes:~$mkdir build && cd build
osboxes@osboxes:~$cmake -G"Ninja" -DCMAKE_INSTALL_PREFIX=<MYBORINGSSL_DIR>/oqs -DOQS_USE_OPENSSL=OFF ..
osboxes@osboxes:~$ninja
[31/1941] Building C object src/kem/bike/CMakeFiles/bike_l3.dir/additional_r3/decode_avx512.c.o
FAILED: src/kem/bike/CMakeFiles/bike_l3.dir/additional_r3/decode_avx512.c.o 
/usr/bin/cc -DDISABLE_VPCLMUL -DFUNC_PREFIX=OQS_KEM_bike_l3 -DLEVEL=3 -DX86_64 -Iinclude -I../src/kem/bike/additional_r3 -fPIC -fvisibility=hidden   -march=native -Werror -Wall -Wextra -Wpedantic -Wstrict-prototypes -Wshadow -Wformat=2 -Wfloat-equal -Wwrite-strings -O3 -fomit-frame-pointer -fdata-sections -ffunction-sections -Wl,--gc-sections -mavx2 -include /home/osboxes/Documents/paranoid-pq/liboqs/src/kem/bike/functions_renaming.h -std=gnu11 -MD -MT src/kem/bike/CMakeFiles/bike_l3.dir/additional_r3/decode_avx512.c.o -MF src/kem/bike/CMakeFiles/bike_l3.dir/additional_r3/decode_avx512.c.o.d -o src/kem/bike/CMakeFiles/bike_l3.dir/additional_r3/decode_avx512.c.o   -c ../src/kem/bike/additional_r3/decode_avx512.c
../src/kem/bike/additional_r3/decode_avx512.c: In function ‘rotate512_big’:
../src/kem/bike/additional_r3/decode_avx512.c:43:21: error: AVX512F vector return without AVX512F enabled changes the ABI [-Werror=psabi]
       const __m512i a = LOAD(&out->qw[8 * (i + idx)]);
                     ^
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:45:0,
                 from ../src/kem/bike/additional_r3/x86_64_intrinsic.h:17,
                 from ../src/kem/bike/additional_r3/decode_avx512.c:25:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avx512fintrin.h:461:1: error: inlining failed in call to always_inline ‘_mm512_mask_store_epi64’: target specific option mismatch
 _mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A)
 ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/kem/bike/additional_r3/decode_avx512.c:25:0:
../src/kem/bike/additional_r3/x86_64_intrinsic.h:97:34: note: called from here
 #  define MSTORE(mem, mask, reg) _mm512_mask_store_epi64((mem), (mask), (reg))
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/kem/bike/additional_r3/decode_avx512.c:44:7: note: in expansion of macro ‘MSTORE’
       MSTORE(&out->qw[8 * i], mask, a);
       ^~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:45:0,
                 from ../src/kem/bike/additional_r3/x86_64_intrinsic.h:17,
                 from ../src/kem/bike/additional_r3/decode_avx512.c:25:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avx512fintrin.h:5805:1: error: inlining failed in call to always_inline ‘_mm512_loadu_si512’: target specific option mismatch
 _mm512_loadu_si512 (void const *__P)
 ^~~~~~~~~~~~~~~~~~
../src/kem/bike/additional_r3/decode_avx512.c:43:21: note: called from here
       const __m512i a = LOAD(&out->qw[8 * (i + idx)]);
                     ^
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:45:0,
                 from ../src/kem/bike/additional_r3/x86_64_intrinsic.h:17,
                 from ../src/kem/bike/additional_r3/decode_avx512.c:25:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avx512fintrin.h:461:1: error: inlining failed in call to always_inline ‘_mm512_mask_store_epi64’: target specific option mismatch
 _mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A)
 ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/kem/bike/additional_r3/decode_avx512.c:25:0:
../src/kem/bike/additional_r3/x86_64_intrinsic.h:97:34: note: called from here
 #  define MSTORE(mem, mask, reg) _mm512_mask_store_epi64((mem), (mask), (reg))
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/kem/bike/additional_r3/decode_avx512.c:44:7: note: in expansion of macro ‘MSTORE’
       MSTORE(&out->qw[8 * i], mask, a);
       ^~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:45:0,
                 from ../src/kem/bike/additional_r3/x86_64_intrinsic.h:17,
                 from ../src/kem/bike/additional_r3/decode_avx512.c:25:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avx512fintrin.h:5805:1: error: inlining failed in call to always_inline ‘_mm512_loadu_si512’: target specific option mismatch
 _mm512_loadu_si512 (void const *__P)
 ^~~~~~~~~~~~~~~~~~
../src/kem/bike/additional_r3/decode_avx512.c:43:21: note: called from here
       const __m512i a = LOAD(&out->qw[8 * (i + idx)]);
                     ^
cc1: all warnings being treated as errors
[33/1941] Building C object src/common/sha3/xkcp_low/CMakeFiles/xkcp_low_keccakp_1600times4_avx2.dir/KeccakP-1600times4/avx2/KeccakP-1600-times4-SIMD256.c.o
ninja: build stopped: subcommand failed.

building crypto objects failing

When preparing a PR to complete open-quantum-safe/liboqs#1111 the necessary re-generation of crypto objects as per https://github.com/open-quantum-safe/boringssl/blob/master/crypto/obj/README failed:

> go run objects.go
YAML:13:3: error: unknown key 'StatementMacros'
  - "DECLARE_ASN1_ALLOC_FUNCTIONS"
  ^
Error reading /home/mib/git/oqs/boringssl/.clang-format: Invalid argument
Error writing header: exit status 1
exit status 1

Would @christianpaquin or @xvzcf know how this can happen? Wrong go version? Wrong libraries? Google (in more than one respect :) was no help....

Build error

I am trying the standard build and install from the readme and every time i am getting this error. Can someone please point me to a solution.

dex@dex-VirtualBox:/boringssl/build$ sudo cmake -GNinja ..
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dex/boringssl/build
dex@dex-VirtualBox:
/boringssl/build$ ls
build.ninja CMakeFiles crypto rules.ninja tool
CMakeCache.txt cmake_install.cmake decrepit ssl util
dex@dex-VirtualBox:~/boringssl/build$ sudo ninja
[213/447] Building C object crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o
FAILED: crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o
/usr/bin/cc -DBORINGSSL_DISPATCH_TEST -DBORINGSSL_HAVE_LIBUNWIND -DBORINGSSL_IMPLEMENTATION -DOQS_RUN_URANDOM_TESTS -I../third_party/googletest/include -I../crypto/../include -I../oqs/include -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -std=c11 -D_XOPEN_SOURCE=700 -MD -MT crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o -MF crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o.d -o crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o -c ../crypto/evp/p_oqs.c
../crypto/evp/p_oqs.c: In function ‘dilithium5_pkey_keygen’:
../crypto/evp/p_oqs.c:140:37: error: ‘OQS_SIG_alg_dilithium_5’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
140 | DEFINE_OQS_PKEY_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:140:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
140 | DEFINE_OQS_PKEY_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:140:37: note: each undeclared identifier is reported only once for each function it appears in
140 | DEFINE_OQS_PKEY_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:140:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
140 | DEFINE_OQS_PKEY_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘dilithium2_aes_pkey_keygen’:
../crypto/evp/p_oqs.c:141:41: error: ‘OQS_SIG_alg_dilithium_2_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_2’?
141 | DEFINE_OQS_PKEY_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:141:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
141 | DEFINE_OQS_PKEY_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘dilithium3_aes_pkey_keygen’:
../crypto/evp/p_oqs.c:142:41: error: ‘OQS_SIG_alg_dilithium_3_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
142 | DEFINE_OQS_PKEY_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:142:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
142 | DEFINE_OQS_PKEY_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘dilithium5_aes_pkey_keygen’:
../crypto/evp/p_oqs.c:143:41: error: ‘OQS_SIG_alg_dilithium_5_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
143 | DEFINE_OQS_PKEY_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:143:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
143 | DEFINE_OQS_PKEY_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowIclassic_pkey_keygen’:
../crypto/evp/p_oqs.c:152:42: error: ‘OQS_SIG_alg_rainbow_I_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_classic’?
152 | DEFINE_OQS_PKEY_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:152:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
152 | DEFINE_OQS_PKEY_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowIcircumzenithal_pkey_keygen’:
../crypto/evp/p_oqs.c:153:49: error: ‘OQS_SIG_alg_rainbow_I_circumzenithal’ undeclared (first use in this function); did you mean ‘OBJ_rainbowIcircumzenithal’?
153 | DEFINE_OQS_PKEY_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:153:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
153 | DEFINE_OQS_PKEY_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowIcompressed_pkey_keygen’:
../crypto/evp/p_oqs.c:154:45: error: ‘OQS_SIG_alg_rainbow_I_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
154 | DEFINE_OQS_PKEY_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:154:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
154 | DEFINE_OQS_PKEY_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowIIIclassic_pkey_keygen’:
../crypto/evp/p_oqs.c:155:44: error: ‘OQS_SIG_alg_rainbow_III_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_classic’?
155 | DEFINE_OQS_PKEY_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:155:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
155 | DEFINE_OQS_PKEY_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowIIIcircumzenithal_pkey_keygen’:
../crypto/evp/p_oqs.c:156:51: error: ‘OQS_SIG_alg_rainbow_III_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_cyclic’?
156 | DEFINE_OQS_PKEY_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:156:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
156 | DEFINE_OQS_PKEY_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowIIIcompressed_pkey_keygen’:
../crypto/evp/p_oqs.c:157:47: error: ‘OQS_SIG_alg_rainbow_III_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
157 | DEFINE_OQS_PKEY_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:157:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
157 | DEFINE_OQS_PKEY_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowVclassic_pkey_keygen’:
../crypto/evp/p_oqs.c:158:42: error: ‘OQS_SIG_alg_rainbow_V_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
158 | DEFINE_OQS_PKEY_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:158:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
158 | DEFINE_OQS_PKEY_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowVcircumzenithal_pkey_keygen’:
../crypto/evp/p_oqs.c:159:49: error: ‘OQS_SIG_alg_rainbow_V_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_cyclic’?
159 | DEFINE_OQS_PKEY_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:159:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
159 | DEFINE_OQS_PKEY_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c: In function ‘rainbowVcompressed_pkey_keygen’:
../crypto/evp/p_oqs.c:160:45: error: ‘OQS_SIG_alg_rainbow_V_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
160 | DEFINE_OQS_PKEY_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
39 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs.c:160:1: note: in expansion of macro ‘DEFINE_OQS_PKEY_METHODS’
160 | DEFINE_OQS_PKEY_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
[214/447] Building C object crypto/CMakeFiles/crypto.dir/evp/p_oqs_asn1.c.o
FAILED: crypto/CMakeFiles/crypto.dir/evp/p_oqs_asn1.c.o
/usr/bin/cc -DBORINGSSL_DISPATCH_TEST -DBORINGSSL_HAVE_LIBUNWIND -DBORINGSSL_IMPLEMENTATION -DOQS_RUN_URANDOM_TESTS -I../third_party/googletest/include -I../crypto/../include -I../oqs/include -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -std=c11 -D_XOPEN_SOURCE=700 -MD -MT crypto/CMakeFiles/crypto.dir/evp/p_oqs_asn1.c.o -MF crypto/CMakeFiles/crypto.dir/evp/p_oqs_asn1.c.o.d -o crypto/CMakeFiles/crypto.dir/evp/p_oqs_asn1.c.o -c ../crypto/evp/p_oqs_asn1.c
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium5_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:229:37: error: ‘OQS_SIG_alg_dilithium_5’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:229:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:229:37: note: each undeclared identifier is reported only once for each function it appears in
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:229:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium5_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:229:37: error: ‘OQS_SIG_alg_dilithium_5’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:229:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium5_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:229:37: error: ‘OQS_SIG_alg_dilithium_5’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:229:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
229 | DEFINE_OQS_ASN1_METHODS(dilithium5, OQS_SIG_alg_dilithium_5, EVP_PKEY_DILITHIUM5)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium2_aes_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:232:41: error: ‘OQS_SIG_alg_dilithium_2_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_2’?
232 | DEFINE_OQS_ASN1_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:232:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
232 | DEFINE_OQS_ASN1_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium2_aes_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:232:41: error: ‘OQS_SIG_alg_dilithium_2_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_2’?
232 | DEFINE_OQS_ASN1_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:232:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
232 | DEFINE_OQS_ASN1_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium2_aes_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:232:41: error: ‘OQS_SIG_alg_dilithium_2_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_2’?
232 | DEFINE_OQS_ASN1_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:232:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
232 | DEFINE_OQS_ASN1_METHODS(dilithium2_aes, OQS_SIG_alg_dilithium_2_aes, EVP_PKEY_DILITHIUM2_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium3_aes_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:235:41: error: ‘OQS_SIG_alg_dilithium_3_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
235 | DEFINE_OQS_ASN1_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:235:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
235 | DEFINE_OQS_ASN1_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium3_aes_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:235:41: error: ‘OQS_SIG_alg_dilithium_3_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
235 | DEFINE_OQS_ASN1_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:235:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
235 | DEFINE_OQS_ASN1_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium3_aes_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:235:41: error: ‘OQS_SIG_alg_dilithium_3_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
235 | DEFINE_OQS_ASN1_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:235:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
235 | DEFINE_OQS_ASN1_METHODS(dilithium3_aes, OQS_SIG_alg_dilithium_3_aes, EVP_PKEY_DILITHIUM3_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium5_aes_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:238:41: error: ‘OQS_SIG_alg_dilithium_5_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
238 | DEFINE_OQS_ASN1_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:238:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
238 | DEFINE_OQS_ASN1_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium5_aes_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:238:41: error: ‘OQS_SIG_alg_dilithium_5_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
238 | DEFINE_OQS_ASN1_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:238:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
238 | DEFINE_OQS_ASN1_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘dilithium5_aes_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:238:41: error: ‘OQS_SIG_alg_dilithium_5_aes’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_dilithium_3’?
238 | DEFINE_OQS_ASN1_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:238:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
238 | DEFINE_OQS_ASN1_METHODS(dilithium5_aes, OQS_SIG_alg_dilithium_5_aes, EVP_PKEY_DILITHIUM5_AES)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIclassic_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:265:42: error: ‘OQS_SIG_alg_rainbow_I_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_classic’?
265 | DEFINE_OQS_ASN1_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:265:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
265 | DEFINE_OQS_ASN1_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIclassic_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:265:42: error: ‘OQS_SIG_alg_rainbow_I_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_classic’?
265 | DEFINE_OQS_ASN1_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:265:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
265 | DEFINE_OQS_ASN1_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIclassic_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:265:42: error: ‘OQS_SIG_alg_rainbow_I_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_classic’?
265 | DEFINE_OQS_ASN1_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:265:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
265 | DEFINE_OQS_ASN1_METHODS(rainbowIclassic, OQS_SIG_alg_rainbow_I_classic, EVP_PKEY_RAINBOWICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIcircumzenithal_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:268:49: error: ‘OQS_SIG_alg_rainbow_I_circumzenithal’ undeclared (first use in this function); did you mean ‘OBJ_rainbowIcircumzenithal’?
268 | DEFINE_OQS_ASN1_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:268:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
268 | DEFINE_OQS_ASN1_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIcircumzenithal_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:268:49: error: ‘OQS_SIG_alg_rainbow_I_circumzenithal’ undeclared (first use in this function); did you mean ‘OBJ_rainbowIcircumzenithal’?
268 | DEFINE_OQS_ASN1_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:268:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
268 | DEFINE_OQS_ASN1_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIcircumzenithal_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:268:49: error: ‘OQS_SIG_alg_rainbow_I_circumzenithal’ undeclared (first use in this function); did you mean ‘OBJ_rainbowIcircumzenithal’?
268 | DEFINE_OQS_ASN1_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:268:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
268 | DEFINE_OQS_ASN1_METHODS(rainbowIcircumzenithal, OQS_SIG_alg_rainbow_I_circumzenithal, EVP_PKEY_RAINBOWICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIcompressed_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:271:45: error: ‘OQS_SIG_alg_rainbow_I_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
271 | DEFINE_OQS_ASN1_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:271:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
271 | DEFINE_OQS_ASN1_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIcompressed_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:271:45: error: ‘OQS_SIG_alg_rainbow_I_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
271 | DEFINE_OQS_ASN1_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:271:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
271 | DEFINE_OQS_ASN1_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIcompressed_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:271:45: error: ‘OQS_SIG_alg_rainbow_I_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
271 | DEFINE_OQS_ASN1_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:271:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
271 | DEFINE_OQS_ASN1_METHODS(rainbowIcompressed, OQS_SIG_alg_rainbow_I_compressed, EVP_PKEY_RAINBOWICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIclassic_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:274:44: error: ‘OQS_SIG_alg_rainbow_III_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_classic’?
274 | DEFINE_OQS_ASN1_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:274:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
274 | DEFINE_OQS_ASN1_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIclassic_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:274:44: error: ‘OQS_SIG_alg_rainbow_III_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_classic’?
274 | DEFINE_OQS_ASN1_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:274:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
274 | DEFINE_OQS_ASN1_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIclassic_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:274:44: error: ‘OQS_SIG_alg_rainbow_III_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_classic’?
274 | DEFINE_OQS_ASN1_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:274:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
274 | DEFINE_OQS_ASN1_METHODS(rainbowIIIclassic, OQS_SIG_alg_rainbow_III_classic, EVP_PKEY_RAINBOWIIICLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIcircumzenithal_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:277:51: error: ‘OQS_SIG_alg_rainbow_III_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_cyclic’?
277 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:277:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
277 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIcircumzenithal_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:277:51: error: ‘OQS_SIG_alg_rainbow_III_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_cyclic’?
277 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:277:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
277 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIcircumzenithal_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:277:51: error: ‘OQS_SIG_alg_rainbow_III_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_IIIc_cyclic’?
277 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:277:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
277 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcircumzenithal, OQS_SIG_alg_rainbow_III_circumzenithal, EVP_PKEY_RAINBOWIIICIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIcompressed_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:280:47: error: ‘OQS_SIG_alg_rainbow_III_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
280 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:280:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
280 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIcompressed_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:280:47: error: ‘OQS_SIG_alg_rainbow_III_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
280 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:280:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
280 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowIIIcompressed_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:280:47: error: ‘OQS_SIG_alg_rainbow_III_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Ia_cyclic_compressed’?
280 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:280:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
280 | DEFINE_OQS_ASN1_METHODS(rainbowIIIcompressed, OQS_SIG_alg_rainbow_III_compressed, EVP_PKEY_RAINBOWIIICOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVclassic_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:283:42: error: ‘OQS_SIG_alg_rainbow_V_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
283 | DEFINE_OQS_ASN1_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:283:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
283 | DEFINE_OQS_ASN1_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVclassic_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:283:42: error: ‘OQS_SIG_alg_rainbow_V_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
283 | DEFINE_OQS_ASN1_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:283:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
283 | DEFINE_OQS_ASN1_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVclassic_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:283:42: error: ‘OQS_SIG_alg_rainbow_V_classic’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
283 | DEFINE_OQS_ASN1_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:283:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
283 | DEFINE_OQS_ASN1_METHODS(rainbowVclassic, OQS_SIG_alg_rainbow_V_classic, EVP_PKEY_RAINBOWVCLASSIC)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVcircumzenithal_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:286:49: error: ‘OQS_SIG_alg_rainbow_V_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_cyclic’?
286 | DEFINE_OQS_ASN1_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:286:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
286 | DEFINE_OQS_ASN1_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVcircumzenithal_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:286:49: error: ‘OQS_SIG_alg_rainbow_V_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_cyclic’?
286 | DEFINE_OQS_ASN1_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:286:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
286 | DEFINE_OQS_ASN1_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVcircumzenithal_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:286:49: error: ‘OQS_SIG_alg_rainbow_V_circumzenithal’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_cyclic’?
286 | DEFINE_OQS_ASN1_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:286:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
286 | DEFINE_OQS_ASN1_METHODS(rainbowVcircumzenithal, OQS_SIG_alg_rainbow_V_circumzenithal, EVP_PKEY_RAINBOWVCIRCUMZENITHAL)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVcompressed_set_priv_raw’:
../crypto/evp/p_oqs_asn1.c:289:45: error: ‘OQS_SIG_alg_rainbow_V_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
289 | DEFINE_OQS_ASN1_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:40:28: note: in definition of macro ‘DEFINE_OQS_SET_PRIV_RAW’
40 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:289:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
289 | DEFINE_OQS_ASN1_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVcompressed_get_priv_raw’:
../crypto/evp/p_oqs_asn1.c:289:45: error: ‘OQS_SIG_alg_rainbow_V_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
289 | DEFINE_OQS_ASN1_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:74:28: note: in definition of macro ‘DEFINE_OQS_GET_PRIV_RAW’
74 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:289:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
289 | DEFINE_OQS_ASN1_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c: In function ‘rainbowVcompressed_set_pub_raw’:
../crypto/evp/p_oqs_asn1.c:289:45: error: ‘OQS_SIG_alg_rainbow_V_compressed’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_rainbow_Vc_classic’?
289 | DEFINE_OQS_ASN1_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../crypto/evp/p_oqs_asn1.c:118:28: note: in definition of macro ‘DEFINE_OQS_SET_PUB_RAW’
118 | key->ctx = OQS_SIG_new(OQS_METH);
| ^~~~~~~~
../crypto/evp/p_oqs_asn1.c:289:1: note: in expansion of macro ‘DEFINE_OQS_ASN1_METHODS’
289 | DEFINE_OQS_ASN1_METHODS(rainbowVcompressed, OQS_SIG_alg_rainbow_V_compressed, EVP_PKEY_RAINBOWVCOMPRESSED)
| ^~~~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.

Failed setting curve list

On writing a code "tool/bssl client -curves -connect localhost:4433", i am getting error
Failed setting curves list

I have tried with these syntaxes:

  1. tool/bssl client -curves oqs_kemdefault -connect localhost:4433
    2.tool/bssl client -curves frodo640aes -connect localhost:4433
    3.tool/bssl client -curves p256_frodo640aes -connect localhost:4433

Also, I am trying to do the setup by installing docker on top of windows10 operating system and inside docker , i have installed ubuntu and then trying to do the setu of boringssl to start with chromim demo

Automate hybrid strength assignment

Hybrid algorithms' (EC curves/)strengths are assigned dependent on the underlying algorithm's NIST strength. This currently is a manual process in oqs-boringssl (by suitably setting values in oqs_template/generate.yml). In oqs-openssl this is automated and therefore leads to interoperability problems if the manually assigned values in oqs-boringssl don't match the ones in oqs-openssl, e.g., if an algorithm changes its NIST strength.

Boringssl server and client

Hello, thank you for getting back to on the last issue with key and cert generation. Another question that is similar to that, is there a server and client on boringssl? Like there is with OpenSSL

Macro IS_OQS_PKEY wrong

This macro is generated:

#define IS_OQS_PKEY(pkey_id) ( (pkey_id >= NID_oqs_sig_default) && (pkey_id <= NID_sphincsshake256256ssimple) )

But the generation logic is flawed as it assumes a NID-ordering that does not exist:

#define IS_OQS_PKEY(pkey_id) ( (pkey_id >= NID_{{ (config['sigs']|first)['name'] }}) && (pkey_id <= NID_{{ (config['sigs']|last)['name'] }}) )

as evidenced for example by this:

#define NID_oqs_sig_default 1142

and this:

#define NID_dilithium2 966

This way, for example dilithium2 is never recognized as an OQS_PKEY, leading to errors when trying to fix open-quantum-safe/oqs-demos#69 properly (using an IS_OQS_PKEY guard).

Windows/Mac Interop Test Server Handshake Tests Failing

Howdy there, everyone. I am currently trying to build the most recent snapshot tag on this repository [91efd57], with liboqs 0.8.0 [db08f12]. I am able to build and integrate both repositories together; however, when testing I am getting a lot of issues with OQS Handshakes.

When running ninja run_tests in boringssl's build directory, I receive many failed tests that look like this for all of the NIDs added by OQS:

[----------] 1 test from WithSignatureNIDs/OQSHandshakeTest
[ RUN      ] WithSignatureNIDs/OQSHandshakeTest.AllKemSignatureTests/1
NID of group under test: 965
NID of group under test: 966
NID of group under test: 977
NID of group under test: 978
NID of group under test: 979
NID of group under test: 980
NID of group under test: 981
NID of group under test: 982
NID of group under test: 983
NID of group under test: 984
NID of group under test: 985
NID of group under test: 986
NID of group under test: 1211
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.

[  FAILED  ] WithSignatureNIDs/OQSHandshakeTest.AllKemSignatureTests/1, where GetParam() = 1143 (2997 ms)
[----------] 1 test from WithSignatureNIDs/OQSHandshakeTest (2997 ms total)

When running pytest oqs_scripts\test_with_interop_server.py im getting: 410 failed, 94 passed in 198.41s (0:03:18), where excerpts of the test's output look like this:

________________________________ test_sig_kex_pair[sphincsshake256ssimple-p521_hqc256] ________________________________

sig = 'sphincsshake256ssimple', kex = 'p521_hqc256', bssl = 'build\\tool\\bssl'
server_CA_cert = <tempfile._TemporaryFileWrapper object at 0x000001C778E2E550>
server_port_assignments = {'dilithium2': {'*': 6086, 'bikel1': 6087, 'frodo640aes': 6088, 'frodo640shake': 6089, ...}, 'dilithium3': {'*': 6104,...6122, 'frodo1344shake': 6123, ...}, 'ecdsap256': {'*': 6000, 'bikel1': 6001, 'bikel3': 6002, 'bikel5': 6003, ...}, ...}

    @pytest.mark.parametrize('kex', kexs)
    @pytest.mark.parametrize('sig', sigs)
    def test_sig_kex_pair(sig, kex, bssl, server_CA_cert, server_port_assignments):
        if kex == 'prime256v1':
           server_port = server_port_assignments[sig]["*"]
        elif kex == 'x25519':
           server_port = server_port_assignments[sig]['X25519']
        else:
>          server_port = server_port_assignments[sig][kex]
E          KeyError: 'sphincsshake256ssimple'

and below in the Summary, the top looks like this:

FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[ecdsap256-x25519] - KeyError: 'X25519'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[ecdsap256-bikel1] - AssertionError: Connecting to 158.177.128.14:6001
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[ecdsap256-p256_bikel1] - AssertionError: Connecting to 158.177.128.14:6016
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[ecdsap256-bikel3] - AssertionError: Connecting to 158.177.128.14:6002
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[ecdsap256-p384_bikel3] - AssertionError: Connecting to 158.177.128.14:6018
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-x25519] - KeyError: 'X25519'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-frodo976aes] - KeyError: 'frodo976aes'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-p384_frodo976aes] - KeyError: 'p384_frodo976aes'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-frodo976shake] - KeyError: 'frodo976shake'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-p384_frodo976shake] - KeyError: 'p384_frodo976shake'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-frodo1344aes] - KeyError: 'frodo1344aes'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-p521_frodo1344aes] - KeyError: 'p521_frodo1344aes'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-frodo1344shake] - KeyError: 'frodo1344shake'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-p521_frodo1344shake] - KeyError: 'p521_frodo1344shake'
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-bikel1] - AssertionError: Connecting to 158.177.128.14:6087
FAILED oqs_scripts/test_with_interop_server.py::test_sig_kex_pair[dilithium2-p256_bikel1] - AssertionError: Connecting to 158.177.128.14:6092

This looks like either an issue with a mismatched liboqs/boringssl paring or my other thought was there may be something with the OIDs or NIDs, but I have not executed the objects.go script.
If anyone could point me in the direction of what is wrong I can correct it, but I'm just at a loss at the moment on where my issue lies.

As the title implies, I have done the same setup for Mac Intel, and I am seeing similar test results on that platform as well.

Any help is very much appreciated.

Thanks!

-Wyatt

Porting BoringSSL-OQS Fork Into Envoy

Hi everyone, firstly apologies if this is the wrong place to open a discussion on this.

What I'm Trying To Do

I'm currently working on an open source implementation of a post-quantum enabled service mesh. This effort is in 3 parts:

  • Nginx-oqs (finished in march of this year)
  • Envoy (in progress)
  • Istio (contingent on completion of envoy)

Nginx was fairly straightforward to port the OpenSSL-OQS fork, but Envoy is giving me some trouble. Envoy is incompatible with OpenSSL (there is a team working on fixing this currently), so I had to use the BoringSSL-OQS fork

How I'm Doing it

To update BoringSSL for envoy, specifically the "main-with-bazel" branch must be used:

Screen Shot 2022-06-24 at 07 31 31

The last updated Boringssl-OQS main-with-bazel was from 2019, so I forked it and added the siphash.h file needed by Envoy.

A few other modifications I needed to make in the Envoy fork I'm modifying:

  • Disable jwt-auth
  • Disable QUIC to side-step Quiche compatibility issues

Envoy successfully builds with my modifications

image
image

Here are the commands I used to generate the self-signed CA cert and the server cert as per the instructions on the OpenSSL-OQS page. I have tried them with all combinations of standard/OQS/hybrid for both the CA cert and the server cert

/usr/local/openssl/apps/openssl req -x509 -new -newkey rsa:2048 -keyout root_CA.key -out root_CA.crt -nodes -subj "/CN=oqstest CA" -days 365 -config /usr/local/openssl/apps/openssl.cnf

/usr/local/openssl/apps/openssl req -new -newkey rsa3072_dilithium2 -keyout serverkey.key -out servercsr.csr -nodes -subj "/CN=oqstest server" -config /usr/local/openssl/apps/openssl.cnf

/usr/local/openssl/apps/openssl x509 -req -in servercsr.csr -out servercert.crt -CA root_CA.crt -CAkey root_CA.key -CAcreateserial -days 365  

How It's Working: Standard RSA

I can confirm my build works by passing RSA certs and keys generated using the OQS-OpenSSL fork. The HTTPS server successfully performs the TLS handshake, and I am able to reach HTTP upstream.

image

How It's Not Working 1: "Cannot Load Certificate Chain"

If I pass the (hybrid or OQS) server cert to Envoy, I get this error:

image

I have tracked it down to this portion of the Envoy source code:

image

Here is a diagram of the functions and their locations in the Envoy and BoringSSL source code:

image

How It's Not Working 2: "Unsupported Algorithm"

If I pass the (RSA) root CA cert to Envoy with the (hybrid or OQS) key, I am faced with this error instead

Screenshot_f

Questions

If anyone is curious and wants to reproduce this, the instructions are on this repo I have set up.

At this point, I feel like there may be something catastrophically important I'm missing about either BoringSSL-OQS, Envoy, or just software development in general.

I would love any and all feedback/advice/thoughts/criticism about why this may be happening, and what I can do to fix this.

Specifically, as the last BoringSSL-OQS update to the main-with-bazel branch was in 2019, I would love to help update that if possible

oqs boringssl in lsquic

Hello, I discovered a c implementation of QUIC (lsquic) and it uses boringssl for the SSL layer. I swapped regular boringssl with oqsboringssl but I cannot get quantum algorithms to work. Is this issue just a size limitation in lsquic?

Session-out not writing to file

Hello, I have a basic client and server that I was testing session resumption on. The client had this code:
~/oqs/boringssl/build/tool/bssl client -connect 10.0.0.2:44330 -session-out res.txt

The connection established but it does not write anything to the file. Am I doing something wrong with the file format?

key and cert generation with BoringSSL

Hello, is there a way to generate certs and keys with boringssl? aksing because I have not seen any instructions on how to generate them with boringssl.

Review project status

In checking all OQS subproject statuses we've also come across this project: It doesn't seem overly active (e.g., actively following the upstream master), so we wonder whether this should somehow be reflected in the README. @pi-314159 any suggestions in this regard?

boringssl private key error with lsquic

Hello, I had a question in my previous issue as I was requested to upload a Docker image for the error produced while using the lsquic and boringssl implementations. I have the tar files ready but they are too high to upload on GitHub (1.87 Gb for server and client). Is there any other way that I can upload the containers?

Hybrid certificate verification

Hello, this topic was discussed in issue #58 which functions for the the post-quantum certificates but the NID's for the hybrids are still not added.

Apparent inconsistency when compiling against recent libOQS

I have tried to compile the project with the current libOQS version (since the build instructions do not point to a particular version) and I'm getting:

osboxes@osboxes:~/Documents/paranoid-pq/boringssl/build$ ninja
[212/447] Building C object crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o
FAILED: crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o 
/usr/bin/cc -DBORINGSSL_DISPATCH_TEST -DBORINGSSL_HAVE_LIBUNWIND -DBORINGSSL_IMPLEMENTATION -DOQS_RUN_URANDOM_TESTS -I../third_party/googletest/include -I../crypto/../include -I../oqs/include -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -std=c11 -D_XOPEN_SOURCE=700 -MD -MT crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o -MF crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o.d -o crypto/CMakeFiles/crypto.dir/evp/p_oqs.c.o   -c ../crypto/evp/p_oqs.c
../crypto/evp/p_oqs.c: In function ‘oqs_sig_default_pkey_keygen’:
../crypto/evp/p_oqs.c:137:42: error: ‘OQS_SIG_alg_default’ undeclared (first use in this function); did you mean ‘OQS_SIG_alg_count’?
 DEFINE_OQS_PKEY_METHODS(oqs_sig_default, OQS_SIG_alg_default, EVP_PKEY_OQS_SIG_DEFAULT)
                                          ^
../crypto/evp/p_oqs.c:39:26: note: in definition of macro ‘DEFINE_PKEY_KEYGEN’
   key->ctx = OQS_SIG_new(OQS_METH);  

Is that a real issue, would you be able to reproduce the above?

BoringSSL client certificate verification

Hello, I have performed a couple of server client connections with rsa 3072 and falcon1024 with the following code:
Server : {bssl_dir} server -cert rsa_crt.pem -key rsa_srv.pem -accept 44330
client : echo "X" | {bssl_dir} client -connect 10.0.0.157:44330 -root-certs rsa_CA.pem

Server : {bssl_dir} server -cert falcon1024_crt.pem -key falcon1024_srv.pem -accept 44330
client : echo "X" | {bssl_dir} client -connect 10.0.0.157:44330 -root-certs falcon1024_CA.pem

With rsa, the client is able to verify the server with CA certificate but with the post quantum algorithms, it fails with the following error :

error on client side:
Connecting to 10.0.0.157:44330
Error while connecting: UNKNOWN_SIGNATURE_ALGORITHM
94279995259064:error:0c0000b8:ASN.1 encoding routines:OPENSSL_internal:UNKNOWN_SIGNATURE_ALGORITHM:../crypto/x509/algorithm.c:184:
94279995259064:error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED:../ssl/handshake.cc:361:
0.008458852767944336

error on server side:
Error while connecting: TLSV1_ALERT_DECRYPT_ERROR
94331224088968:error:1000041b:SSL routines:OPENSSL_internal:TLSV1_ALERT_DECRYPT_ERROR:../ssl/tls_record.cc:592:SSL alert number 51

Is it using the non post quantum openssl libraries and if so how do I fix this?

Boringssl client and server error

Hello, I used a script in OpenSSL to generate a dilithium2 private key and certificate and I tested them with OpenSSL client and server where they were functional. In boringSSL, when I initiate the server, I get the following error:
Failed to load private key: key_srv.key
94525136107832:error:06000066:public key routines:OPENSSL_internal:DECODE_ERROR:../crypto/evp/p_oqs_asn1.c:257:
94525136107832:error:13000068:PKCS8 routines:OPENSSL_internal:DECODE_ERROR:../crypto/pkcs8/pkcs8_x509.c:128:
94525136107832:error:0900000c:PEM routines:OPENSSL_internal:ASN.1 encoding routines:../crypto/pem/pem_pkey.c:138:
94525136107832:error:10000009:SSL routines:OPENSSL_internal:PEM routines:../ssl/ssl_file.cc:487:

I have included my key and cert generation script and the boringssl client and server scripts. Please let me know where I am making an error.

Thank you
boringssl files.zip

Build problem on Windows

I received the following bug report by email:

When build liboqs via https://github.com/open-quantum-safe/boringssl#building on Windows 10 x64/MSVC 19.29.30133.0,msvc actually generated 'oqs.lib' in build\lib\ while the cmakelist.txt of boringssl (line:601-608)require liboqs.a/liboqs.s,leading cmake to omitting the erro.

Sol:add 'set(LIBOQS ${LIBOQS_DIR}/lib/oqs.lib)'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.