diff --git a/.gitignore b/.gitignore index 7da362e..dd73379 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,10 @@ /testcrypto /testspeed /testx509 +*.cmd +*.o +*.ko +*.mod* +*.o.d +*.order +*.symvers diff --git a/Makefile b/Makefile index f7f24fc..35746f1 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,11 @@ !include mk/NMake.mk # \ !else .POSIX: -include mk/SingleUnix.mk +include $(PWD)/mk/SingleUnix.mk +OS := $(shell uname) +ifeq ($(OS),Linux) +include $(PWD)/mk/LinuxKM.mk +endif # Extra hack for OpenBSD make. ifndef: all 0: all diff --git a/inc/bearssl.h b/inc/bearssl.h index 310edb2..d2088af 100644 --- a/inc/bearssl.h +++ b/inc/bearssl.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_H__ #define BR_BEARSSL_H__ -#include -#include +#include /** \mainpage BearSSL API * diff --git a/inc/bearssl_aead.h b/inc/bearssl_aead.h index 8e35a1f..21d3735 100644 --- a/inc/bearssl_aead.h +++ b/inc/bearssl_aead.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_AEAD_H__ #define BR_BEARSSL_AEAD_H__ -#include -#include +#include #include "bearssl_block.h" #include "bearssl_hash.h" diff --git a/inc/bearssl_block.h b/inc/bearssl_block.h index 683a490..1d111b1 100644 --- a/inc/bearssl_block.h +++ b/inc/bearssl_block.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_BLOCK_H__ #define BR_BEARSSL_BLOCK_H__ -#include -#include +#include #ifdef __cplusplus extern "C" { diff --git a/inc/bearssl_ec.h b/inc/bearssl_ec.h index acd3a2b..c4eb82c 100644 --- a/inc/bearssl_ec.h +++ b/inc/bearssl_ec.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_EC_H__ #define BR_BEARSSL_EC_H__ -#include -#include +#include #include "bearssl_rand.h" diff --git a/inc/bearssl_hash.h b/inc/bearssl_hash.h index ca4fa26..7aca6af 100644 --- a/inc/bearssl_hash.h +++ b/inc/bearssl_hash.h @@ -25,9 +25,8 @@ #ifndef BR_BEARSSL_HASH_H__ #define BR_BEARSSL_HASH_H__ -#include -#include -#include +#include +#include #ifdef __cplusplus extern "C" { diff --git a/inc/bearssl_hmac.h b/inc/bearssl_hmac.h index 4dc01ca..ff1713b 100644 --- a/inc/bearssl_hmac.h +++ b/inc/bearssl_hmac.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_HMAC_H__ #define BR_BEARSSL_HMAC_H__ -#include -#include +#include #include "bearssl_hash.h" diff --git a/inc/bearssl_kdf.h b/inc/bearssl_kdf.h index 955b843..f55d215 100644 --- a/inc/bearssl_kdf.h +++ b/inc/bearssl_kdf.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_KDF_H__ #define BR_BEARSSL_KDF_H__ -#include -#include +#include #include "bearssl_hash.h" #include "bearssl_hmac.h" diff --git a/inc/bearssl_pem.h b/inc/bearssl_pem.h index 8dba582..f6d6466 100644 --- a/inc/bearssl_pem.h +++ b/inc/bearssl_pem.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_PEM_H__ #define BR_BEARSSL_PEM_H__ -#include -#include +#include #ifdef __cplusplus extern "C" { diff --git a/inc/bearssl_prf.h b/inc/bearssl_prf.h index fdf608c..dee8932 100644 --- a/inc/bearssl_prf.h +++ b/inc/bearssl_prf.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_PRF_H__ #define BR_BEARSSL_PRF_H__ -#include -#include +#include #ifdef __cplusplus extern "C" { diff --git a/inc/bearssl_rand.h b/inc/bearssl_rand.h index 0a9f544..130e47f 100644 --- a/inc/bearssl_rand.h +++ b/inc/bearssl_rand.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_RAND_H__ #define BR_BEARSSL_RAND_H__ -#include -#include +#include #include "bearssl_block.h" #include "bearssl_hash.h" diff --git a/inc/bearssl_rsa.h b/inc/bearssl_rsa.h index 0a069fd..d982790 100644 --- a/inc/bearssl_rsa.h +++ b/inc/bearssl_rsa.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_RSA_H__ #define BR_BEARSSL_RSA_H__ -#include -#include +#include #include "bearssl_hash.h" #include "bearssl_rand.h" diff --git a/inc/bearssl_ssl.h b/inc/bearssl_ssl.h index e91df47..5b63fff 100644 --- a/inc/bearssl_ssl.h +++ b/inc/bearssl_ssl.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_SSL_H__ #define BR_BEARSSL_SSL_H__ -#include -#include +#include #include "bearssl_block.h" #include "bearssl_hash.h" @@ -584,6 +583,7 @@ typedef struct { } bc; br_ghash gh; unsigned char iv[4]; + unsigned char key[32]; unsigned char h[16]; #endif } br_sslrec_gcm_context; @@ -788,6 +788,7 @@ typedef struct { br_aes_gen_ctrcbc_keys aes; } bc; unsigned char iv[4]; + unsigned char key[16]; size_t tag_len; #endif } br_sslrec_ccm_context; @@ -4016,6 +4017,9 @@ void br_sslio_init(br_sslio_context *ctx, const unsigned char *data, size_t len), void *write_context); +extern int +(*br_sslio_run_until)(br_sslio_context *ctx, unsigned target); + /** * \brief Read some application data from a SSL connection. * diff --git a/inc/bearssl_x509.h b/inc/bearssl_x509.h index 7668e1d..f9a4588 100644 --- a/inc/bearssl_x509.h +++ b/inc/bearssl_x509.h @@ -25,8 +25,7 @@ #ifndef BR_BEARSSL_X509_H__ #define BR_BEARSSL_X509_H__ -#include -#include +#include #include "bearssl_ec.h" #include "bearssl_hash.h" diff --git a/mk/LinuxKM.mk b/mk/LinuxKM.mk new file mode 100644 index 0000000..4bb4b83 --- /dev/null +++ b/mk/LinuxKM.mk @@ -0,0 +1,323 @@ +# Set the path to the Kernel build utils. +KVERSION ?= $(shell uname -r) +KBUILD=/lib/modules/${KVERSION}/build/ + +ccflags-y += -Ofast -ffreestanding -Wno-undef -Wno-error=frame-larger-than= -Wframe-larger-than=2048 +CFLAGS_src/ssl/ssl_engine.o := -Wno-error=implicit-fallthrough= +CFLAGS_src/int/i31_encode.o := -Wno-error=implicit-fallthrough= +CFLAGS_src/int/i32_encode.o := -Wno-error=implicit-fallthrough= + +ARCH := $(shell uname -m) +ifeq ($(ARCH), aarch64) + ccflags-remove-y += -mgeneral-regs-only +endif + +LD = ld +VERBOSE ?= 0 + +linux-km: + $(MAKE) -C $(KBUILD) M=$(PWD) V=$(VERBOSE) modules + +linux-km-clean: + $(MAKE) -C $(KBUILD) M=$(PWD) clean + +linux-km-help: + $(MAKE) -C $(KBUILD) M=$(PWD) help + +# obj-m specifies we're a kernel module. +obj-m += bearssl.o +bearssl-objs := src/linuxkm.o \ + src/kdf/shake.o \ + src/kdf/hkdf.o \ + src/ssl/ssl_hashes.o \ + src/ssl/ssl_scert_single_ec.o \ + src/ssl/ssl_engine_default_rsavrfy.o \ + src/ssl/prf.o \ + src/ssl/ssl_engine_default_ecdsa.o \ + src/ssl/ssl_server_minf2c.o \ + src/ssl/ssl_server_mine2g.o \ + src/ssl/ssl_io.o \ + src/ssl/ssl_server_minr2g.o \ + src/ssl/ssl_server_mine2c.o \ + src/ssl/ssl_engine.o \ + src/ssl/ssl_hs_client.o \ + src/ssl/ssl_engine_default_aesccm.o \ + src/ssl/ssl_rec_ccm.o \ + src/ssl/ssl_server_minf2g.o \ + src/ssl/ssl_client.o \ + src/ssl/ssl_server_minu2g.o \ + src/ssl/ssl_rec_gcm.o \ + src/ssl/ssl_rec_chapol.o \ + src/ssl/ssl_engine_default_aesgcm.o \ + src/ssl/ssl_keyexport.o \ + src/ssl/ssl_engine_default_aescbc.o \ + src/ssl/ssl_rec_cbc.o \ + src/ssl/ssl_server_minv2g.o \ + src/ssl/ssl_engine_default_descbc.o \ + src/ssl/ssl_lru.o \ + src/ssl/prf_sha384.o \ + src/ssl/prf_sha256.o \ + src/ssl/ssl_server.o \ + src/ssl/ssl_hs_server.o \ + src/ssl/ssl_engine_default_ec.o \ + src/ssl/ssl_client_default_rsapub.o \ + src/ssl/ssl_engine_default_chapol.o \ + src/ssl/ssl_scert_single_rsa.o \ + src/ssl/ssl_ccert_single_rsa.o \ + src/ssl/ssl_server_full_ec.o \ + src/ssl/prf_md5sha1.o \ + src/ssl/ssl_client_full.o \ + src/ssl/ssl_server_full_rsa.o \ + src/ssl/ssl_ccert_single_ec.o \ + src/aead/gcm.o \ + src/aead/ccm.o \ + src/aead/eax.o \ + src/hash/sha2small.o \ + src/hash/ghash_ctmul32.o \ + src/hash/mgf1.o \ + src/hash/sha1.o \ + src/hash/md5sha1.o \ + src/hash/dig_size.o \ + src/hash/multihash.o \ + src/hash/ghash_pclmul.o \ + src/hash/ghash_ctmul.o \ + src/hash/ghash_ctmul64.o \ + src/hash/sha2big.o \ + src/hash/ghash_pwr8.o \ + src/hash/md5.o \ + src/hash/dig_oid.o \ + src/codec/enc32le.o \ + src/codec/dec16le.o \ + src/codec/dec64be.o \ + src/codec/dec16be.o \ + src/codec/enc32be.o \ + src/codec/dec64le.o \ + src/codec/enc64le.o \ + src/codec/dec32be.o \ + src/codec/enc16be.o \ + src/codec/pemenc.o \ + src/codec/ccopy.o \ + src/codec/pemdec.o \ + src/codec/enc64be.o \ + src/codec/enc16le.o \ + src/codec/dec32le.o \ + src/rsa/rsa_i31_keygen_inner.o \ + src/rsa/rsa_default_pss_vrfy.o \ + src/rsa/rsa_i15_pubexp.o \ + src/rsa/rsa_i62_pkcs1_vrfy.o \ + src/rsa/rsa_i31_modulus.o \ + src/rsa/rsa_i32_pss_sign.o \ + src/rsa/rsa_i15_oaep_encrypt.o \ + src/rsa/rsa_i15_pub.o \ + src/rsa/rsa_pss_sig_pad.o \ + src/rsa/rsa_default_pub.o \ + src/rsa/rsa_default_modulus.o \ + src/rsa/rsa_i31_pub.o \ + src/rsa/rsa_i62_oaep_encrypt.o \ + src/rsa/rsa_i31_pkcs1_vrfy.o \ + src/rsa/rsa_i32_oaep_decrypt.o \ + src/rsa/rsa_i15_pss_vrfy.o \ + src/rsa/rsa_i31_keygen.o \ + src/rsa/rsa_default_oaep_decrypt.o \ + src/rsa/rsa_i15_pkcs1_vrfy.o \ + src/rsa/rsa_default_priv.o \ + src/rsa/rsa_i32_priv.o \ + src/rsa/rsa_i62_pss_sign.o \ + src/rsa/rsa_default_pubexp.o \ + src/rsa/rsa_oaep_unpad.o \ + src/rsa/rsa_ssl_decrypt.o \ + src/rsa/rsa_default_keygen.o \ + src/rsa/rsa_default_pkcs1_sign.o \ + src/rsa/rsa_pss_sig_unpad.o \ + src/rsa/rsa_i32_pub.o \ + src/rsa/rsa_i31_pubexp.o \ + src/rsa/rsa_i15_privexp.o \ + src/rsa/rsa_i31_oaep_decrypt.o \ + src/rsa/rsa_i31_pss_vrfy.o \ + src/rsa/rsa_i15_keygen.o \ + src/rsa/rsa_i62_keygen.o \ + src/rsa/rsa_i32_pkcs1_sign.o \ + src/rsa/rsa_pkcs1_sig_pad.o \ + src/rsa/rsa_i31_priv.o \ + src/rsa/rsa_default_pss_sign.o \ + src/rsa/rsa_i32_pss_vrfy.o \ + src/rsa/rsa_i62_pkcs1_sign.o \ + src/rsa/rsa_i31_oaep_encrypt.o \ + src/rsa/rsa_i15_priv.o \ + src/rsa/rsa_i15_pkcs1_sign.o \ + src/rsa/rsa_i62_pub.o \ + src/rsa/rsa_default_privexp.o \ + src/rsa/rsa_pkcs1_sig_unpad.o \ + src/rsa/rsa_i62_pss_vrfy.o \ + src/rsa/rsa_i15_pss_sign.o \ + src/rsa/rsa_i31_pkcs1_sign.o \ + src/rsa/rsa_i31_privexp.o \ + src/rsa/rsa_i62_priv.o \ + src/rsa/rsa_default_oaep_encrypt.o \ + src/rsa/rsa_i62_oaep_decrypt.o \ + src/rsa/rsa_i32_oaep_encrypt.o \ + src/rsa/rsa_default_pkcs1_vrfy.o \ + src/rsa/rsa_oaep_pad.o \ + src/rsa/rsa_i15_modulus.o \ + src/rsa/rsa_i31_pss_sign.o \ + src/rsa/rsa_i32_pkcs1_vrfy.o \ + src/rsa/rsa_i15_oaep_decrypt.o \ + src/ec/ec_p256_m62.o \ + src/ec/ec_keygen.o \ + src/ec/ec_prime_i31.o \ + src/ec/ec_default.o \ + src/ec/ecdsa_i31_vrfy_asn1.o \ + src/ec/ec_c25519_m62.o \ + src/ec/ecdsa_atr.o \ + src/ec/ecdsa_i15_vrfy_asn1.o \ + src/ec/ec_c25519_m31.o \ + src/ec/ec_c25519_i31.o \ + src/ec/ec_curve25519.o \ + src/ec/ec_all_m31.o \ + src/ec/ec_p256_m31.o \ + src/ec/ecdsa_default_sign_asn1.o \ + src/ec/ecdsa_rta.o \ + src/ec/ec_p256_m64.o \ + src/ec/ecdsa_i15_vrfy_raw.o \ + src/ec/ec_c25519_m15.o \ + src/ec/ec_all_m15.o \ + src/ec/ec_c25519_m64.o \ + src/ec/ecdsa_i31_sign_asn1.o \ + src/ec/ecdsa_i15_sign_raw.o \ + src/ec/ec_c25519_i15.o \ + src/ec/ec_secp384r1.o \ + src/ec/ec_p256_m15.o \ + src/ec/ecdsa_i15_sign_asn1.o \ + src/ec/ecdsa_i31_vrfy_raw.o \ + src/ec/ecdsa_default_sign_raw.o \ + src/ec/ec_secp256r1.o \ + src/ec/ecdsa_i31_bits.o \ + src/ec/ec_prime_i15.o \ + src/ec/ecdsa_i15_bits.o \ + src/ec/ecdsa_default_vrfy_asn1.o \ + src/ec/ec_secp521r1.o \ + src/ec/ecdsa_default_vrfy_raw.o \ + src/ec/ec_pubkey.o \ + src/ec/ecdsa_i31_sign_raw.o \ + src/x509/asn1enc.o \ + src/x509/encode_ec_rawder.o \ + src/x509/x509_minimal_full.o \ + src/x509/encode_rsa_rawder.o \ + src/x509/x509_minimal.o \ + src/x509/x509_knownkey.o \ + src/x509/skey_decoder.o \ + src/x509/encode_rsa_pk8der.o \ + src/x509/encode_ec_pk8der.o \ + src/x509/x509_decoder.o \ + src/mac/hmac.o \ + src/mac/hmac_ct.o \ + src/int/i32_bitlen.o \ + src/int/i31_fmont.o \ + src/int/i31_decred.o \ + src/int/i15_rshift.o \ + src/int/i62_modpow2.o \ + src/int/i32_decmod.o \ + src/int/i31_encode.o \ + src/int/i32_iszero.o \ + src/int/i31_mulacc.o \ + src/int/i15_modpow2.o \ + src/int/i32_muladd.o \ + src/int/i15_reduce.o \ + src/int/i31_decode.o \ + src/int/i15_decred.o \ + src/int/i31_rshift.o \ + src/int/i32_modpow.o \ + src/int/i32_fmont.o \ + src/int/i31_reduce.o \ + src/int/i15_decode.o \ + src/int/i15_fmont.o \ + src/int/i31_ninv31.o \ + src/int/i31_montmul.o \ + src/int/i15_encode.o \ + src/int/i32_div32.o \ + src/int/i15_mulacc.o \ + src/int/i31_muladd.o \ + src/int/i32_ninv32.o \ + src/int/i32_decode.o \ + src/int/i31_decmod.o \ + src/int/i31_tmont.o \ + src/int/i31_iszero.o \ + src/int/i32_encode.o \ + src/int/i15_montmul.o \ + src/int/i32_mulacc.o \ + src/int/i15_moddiv.o \ + src/int/i32_decred.o \ + src/int/i31_sub.o \ + src/int/i15_modpow.o \ + src/int/i15_add.o \ + src/int/i31_add.o \ + src/int/i31_bitlen.o \ + src/int/i32_montmul.o \ + src/int/i15_sub.o \ + src/int/i15_iszero.o \ + src/int/i15_decmod.o \ + src/int/i32_tmont.o \ + src/int/i32_reduce.o \ + src/int/i15_muladd.o \ + src/int/i31_modpow2.o \ + src/int/i15_tmont.o \ + src/int/i15_bitlen.o \ + src/int/i15_ninv15.o \ + src/int/i31_modpow.o \ + src/int/i32_add.o \ + src/int/i32_sub.o \ + src/int/i31_moddiv.o \ + src/symcipher/des_tab_cbcdec.o \ + src/symcipher/aes_ct64.o \ + src/symcipher/aes_big_cbcenc.o \ + src/symcipher/aes_pwr8_cbcdec.o \ + src/symcipher/aes_ct_ctr.o \ + src/symcipher/des_ct.o \ + src/symcipher/aes_x86ni_ctrcbc.o \ + src/symcipher/aes_small_ctrcbc.o \ + src/symcipher/des_ct_cbcenc.o \ + src/symcipher/poly1305_ctmul32.o \ + src/symcipher/aes_big_ctr.o \ + src/symcipher/aes_ct_ctrcbc.o \ + src/symcipher/des_ct_cbcdec.o \ + src/symcipher/poly1305_ctmulq.o \ + src/symcipher/aes_ct64_ctrcbc.o \ + src/symcipher/aes_pwr8_cbcenc.o \ + src/symcipher/chacha20_ct.o \ + src/symcipher/aes_big_cbcdec.o \ + src/symcipher/aes_small_ctr.o \ + src/symcipher/aes_x86ni.o \ + src/symcipher/des_tab_cbcenc.o \ + src/symcipher/aes_ct64_ctr.o \ + src/symcipher/des_support.o \ + src/symcipher/aes_big_ctrcbc.o \ + src/symcipher/aes_small_dec.o \ + src/symcipher/aes_x86ni_ctr.o \ + src/symcipher/aes_common.o \ + src/symcipher/aes_ct64_dec.o \ + src/symcipher/des_tab.o \ + src/symcipher/aes_big_dec.o \ + src/symcipher/aes_pwr8.o \ + src/symcipher/aes_small_cbcenc.o \ + src/symcipher/aes_ct_cbcdec.o \ + src/symcipher/chacha20_sse2.o \ + src/symcipher/aes_ct_enc.o \ + src/symcipher/aes_x86ni_cbcenc.o \ + src/symcipher/poly1305_ctmul.o \ + src/symcipher/aes_ct64_cbcdec.o \ + src/symcipher/aes_pwr8_ctr.o \ + src/symcipher/poly1305_i15.o \ + src/symcipher/aes_ct64_cbcenc.o \ + src/symcipher/aes_x86ni_cbcdec.o \ + src/symcipher/aes_ct_dec.o \ + src/symcipher/aes_ct_cbcenc.o \ + src/symcipher/aes_small_cbcdec.o \ + src/symcipher/aes_ct.o \ + src/symcipher/aes_big_enc.o \ + src/symcipher/aes_ct64_enc.o \ + src/symcipher/aes_small_enc.o \ + src/symcipher/aes_pwr8_ctrcbc.o \ + src/settings.o \ + src/rand/sysrng.o \ + src/rand/aesctr_drbg.o \ + src/rand/hmac_drbg.o \ diff --git a/mk/SingleUnix.mk b/mk/SingleUnix.mk index e169617..bed621d 100644 --- a/mk/SingleUnix.mk +++ b/mk/SingleUnix.mk @@ -26,7 +26,7 @@ # utility. # Load generic default. -include mk/Defaults.mk +include $(PWD)/mk/Defaults.mk # Path separator. P = / @@ -34,5 +34,5 @@ P = / # Default configuration is 'Unix' (native build on a Unix-like system). CONF = Unix -include conf/$(CONF).mk -include mk/Rules.mk +include $(PWD)/conf/$(CONF).mk +include $(PWD)/mk/Rules.mk diff --git a/src/aead/ccm.c b/src/aead/ccm.c index 68cc913..4dec299 100644 --- a/src/aead/ccm.c +++ b/src/aead/ccm.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Implementation Notes diff --git a/src/aead/eax.c b/src/aead/eax.c index bcc704a..e291f6f 100644 --- a/src/aead/eax.c +++ b/src/aead/eax.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Implementation Notes diff --git a/src/aead/gcm.c b/src/aead/gcm.c index ede5f08..b99fcb1 100644 --- a/src/aead/gcm.c +++ b/src/aead/gcm.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Implementation Notes diff --git a/src/codec/ccopy.c b/src/codec/ccopy.c index 2beace7..8cfe80d 100644 --- a/src/codec/ccopy.c +++ b/src/codec/ccopy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/dec16be.c b/src/codec/dec16be.c index 4f3f7f4..bcbf81e 100644 --- a/src/codec/dec16be.c +++ b/src/codec/dec16be.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/dec16le.c b/src/codec/dec16le.c index 84d8536..d9470c3 100644 --- a/src/codec/dec16le.c +++ b/src/codec/dec16le.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/dec32be.c b/src/codec/dec32be.c index 5a8fc59..84ec3da 100644 --- a/src/codec/dec32be.c +++ b/src/codec/dec32be.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/dec32le.c b/src/codec/dec32le.c index ed36e71..148e93b 100644 --- a/src/codec/dec32le.c +++ b/src/codec/dec32le.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/dec64be.c b/src/codec/dec64be.c index 0c40a76..3e7184b 100644 --- a/src/codec/dec64be.c +++ b/src/codec/dec64be.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/dec64le.c b/src/codec/dec64le.c index cbd02c2..68c46fe 100644 --- a/src/codec/dec64le.c +++ b/src/codec/dec64le.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/enc16be.c b/src/codec/enc16be.c index 6e06652..b420366 100644 --- a/src/codec/enc16be.c +++ b/src/codec/enc16be.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/enc16le.c b/src/codec/enc16le.c index 3e5049a..79eaf19 100644 --- a/src/codec/enc16le.c +++ b/src/codec/enc16le.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/enc32be.c b/src/codec/enc32be.c index 97298b5..b55e106 100644 --- a/src/codec/enc32be.c +++ b/src/codec/enc32be.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/enc32le.c b/src/codec/enc32le.c index 9e9c856..9f701f5 100644 --- a/src/codec/enc32le.c +++ b/src/codec/enc32le.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/enc64be.c b/src/codec/enc64be.c index d548944..58a5afe 100644 --- a/src/codec/enc64be.c +++ b/src/codec/enc64be.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/enc64le.c b/src/codec/enc64le.c index 1f1d68e..17d4f13 100644 --- a/src/codec/enc64le.c +++ b/src/codec/enc64le.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/codec/pemdec.c b/src/codec/pemdec.c index 8e54e6d..75b7f5f 100644 --- a/src/codec/pemdec.c +++ b/src/codec/pemdec.c @@ -1,7 +1,6 @@ /* Automatically generated code; do not modify directly. */ -#include -#include +#include typedef struct { uint32_t *dp; @@ -67,7 +66,7 @@ void br_pem_decoder_run(void *t0ctx); -#include "inner.h" +#include "../inner.h" #define CTX ((br_pem_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_pem_decoder_context, cpu))) diff --git a/src/codec/pemdec.t0 b/src/codec/pemdec.t0 index 2237abb..4ea1030 100644 --- a/src/codec/pemdec.t0 +++ b/src/codec/pemdec.t0 @@ -22,7 +22,7 @@ preamble { -#include "inner.h" +#include "../inner.h" #define CTX ((br_pem_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_pem_decoder_context, cpu))) diff --git a/src/codec/pemenc.c b/src/codec/pemenc.c index 236601e..692d6cf 100644 --- a/src/codec/pemenc.c +++ b/src/codec/pemenc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Get the appropriate Base64 character for a numeric value in the diff --git a/src/ec/ec_all_m15.c b/src/ec/ec_all_m15.c index bb550e1..04c4ef4 100644 --- a/src/ec/ec_all_m15.c +++ b/src/ec/ec_all_m15.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const unsigned char * api_generator(int curve, size_t *len) diff --git a/src/ec/ec_all_m31.c b/src/ec/ec_all_m31.c index 8fd8c3c..2a873a5 100644 --- a/src/ec/ec_all_m31.c +++ b/src/ec/ec_all_m31.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const unsigned char * api_generator(int curve, size_t *len) diff --git a/src/ec/ec_c25519_i15.c b/src/ec/ec_c25519_i15.c index 8fadcf4..6c65bf4 100644 --- a/src/ec/ec_c25519_i15.c +++ b/src/ec/ec_c25519_i15.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Parameters for the field: diff --git a/src/ec/ec_c25519_i31.c b/src/ec/ec_c25519_i31.c index f8ffc2c..cae9516 100644 --- a/src/ec/ec_c25519_i31.c +++ b/src/ec/ec_c25519_i31.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Parameters for the field: diff --git a/src/ec/ec_c25519_m15.c b/src/ec/ec_c25519_m15.c index deff55b..9fedf19 100644 --- a/src/ec/ec_c25519_m15.c +++ b/src/ec/ec_c25519_m15.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* obsolete #include diff --git a/src/ec/ec_c25519_m31.c b/src/ec/ec_c25519_m31.c index 1dd6d51..58a7ee1 100644 --- a/src/ec/ec_c25519_m31.c +++ b/src/ec/ec_c25519_m31.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* obsolete #include diff --git a/src/ec/ec_c25519_m62.c b/src/ec/ec_c25519_m62.c index 6b058eb..3de8d5f 100644 --- a/src/ec/ec_c25519_m62.c +++ b/src/ec/ec_c25519_m62.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/ec/ec_c25519_m64.c b/src/ec/ec_c25519_m64.c index df48834..7c12360 100644 --- a/src/ec/ec_c25519_m64.c +++ b/src/ec/ec_c25519_m64.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/ec/ec_curve25519.c b/src/ec/ec_curve25519.c index a47d215..e7da94b 100644 --- a/src/ec/ec_curve25519.c +++ b/src/ec/ec_curve25519.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const unsigned char GEN[] = { 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/src/ec/ec_default.c b/src/ec/ec_default.c index 7bb6e0c..6e34d19 100644 --- a/src/ec/ec_default.c +++ b/src/ec/ec_default.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ec.h */ const br_ec_impl * diff --git a/src/ec/ec_keygen.c b/src/ec/ec_keygen.c index 02a3096..599ff99 100644 --- a/src/ec/ec_keygen.c +++ b/src/ec/ec_keygen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ec.h */ size_t diff --git a/src/ec/ec_p256_m15.c b/src/ec/ec_p256_m15.c index 05800d8..0365160 100644 --- a/src/ec/ec_p256_m15.c +++ b/src/ec/ec_p256_m15.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * If BR_NO_ARITH_SHIFT is undefined, or defined to 0, then we _assume_ diff --git a/src/ec/ec_p256_m31.c b/src/ec/ec_p256_m31.c index b185937..8130dde 100644 --- a/src/ec/ec_p256_m31.c +++ b/src/ec/ec_p256_m31.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * If BR_NO_ARITH_SHIFT is undefined, or defined to 0, then we _assume_ diff --git a/src/ec/ec_p256_m62.c b/src/ec/ec_p256_m62.c index a431790..30fcce2 100644 --- a/src/ec/ec_p256_m62.c +++ b/src/ec/ec_p256_m62.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 @@ -81,7 +81,9 @@ api_xoff(int curve, size_t *len) * In particular, such a value is less than twice the modulus p. */ +#ifndef BIT #define BIT(n) ((uint64_t)1 << (n)) +#endif #define MASK48 (BIT(48) - BIT(0)) #define MASK52 (BIT(52) - BIT(0)) diff --git a/src/ec/ec_p256_m64.c b/src/ec/ec_p256_m64.c index 71a527c..603245e 100644 --- a/src/ec/ec_p256_m64.c +++ b/src/ec/ec_p256_m64.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/ec/ec_prime_i15.c b/src/ec/ec_prime_i15.c index f86dbe6..5a6c1d1 100644 --- a/src/ec/ec_prime_i15.c +++ b/src/ec/ec_prime_i15.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Parameters for supported curves: diff --git a/src/ec/ec_prime_i31.c b/src/ec/ec_prime_i31.c index b205f36..fb1dfd1 100644 --- a/src/ec/ec_prime_i31.c +++ b/src/ec/ec_prime_i31.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Parameters for supported curves (field modulus, and 'b' equation diff --git a/src/ec/ec_pubkey.c b/src/ec/ec_pubkey.c index 383ff28..99f8e10 100644 --- a/src/ec/ec_pubkey.c +++ b/src/ec/ec_pubkey.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const unsigned char POINT_LEN[] = { 0, /* 0: not a valid curve ID */ diff --git a/src/ec/ec_secp256r1.c b/src/ec/ec_secp256r1.c index a9d6c45..9308fa5 100644 --- a/src/ec/ec_secp256r1.c +++ b/src/ec/ec_secp256r1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const unsigned char P256_N[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, diff --git a/src/ec/ec_secp384r1.c b/src/ec/ec_secp384r1.c index 693d93e..06d7602 100644 --- a/src/ec/ec_secp384r1.c +++ b/src/ec/ec_secp384r1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const unsigned char P384_N[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, diff --git a/src/ec/ec_secp521r1.c b/src/ec/ec_secp521r1.c index 161acd0..9ec4925 100644 --- a/src/ec/ec_secp521r1.c +++ b/src/ec/ec_secp521r1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const unsigned char P521_N[] = { 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, diff --git a/src/ec/ecdsa_atr.c b/src/ec/ecdsa_atr.c index 3a11226..dcf0183 100644 --- a/src/ec/ecdsa_atr.c +++ b/src/ec/ecdsa_atr.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ec.h */ size_t diff --git a/src/ec/ecdsa_default_sign_asn1.c b/src/ec/ecdsa_default_sign_asn1.c index afbf8ac..179e020 100644 --- a/src/ec/ecdsa_default_sign_asn1.c +++ b/src/ec/ecdsa_default_sign_asn1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ec.h */ br_ecdsa_sign diff --git a/src/ec/ecdsa_default_sign_raw.c b/src/ec/ecdsa_default_sign_raw.c index 287c970..d68c03a 100644 --- a/src/ec/ecdsa_default_sign_raw.c +++ b/src/ec/ecdsa_default_sign_raw.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ec.h */ br_ecdsa_sign diff --git a/src/ec/ecdsa_default_vrfy_asn1.c b/src/ec/ecdsa_default_vrfy_asn1.c index fe0996e..dff99ea 100644 --- a/src/ec/ecdsa_default_vrfy_asn1.c +++ b/src/ec/ecdsa_default_vrfy_asn1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ec.h */ br_ecdsa_vrfy diff --git a/src/ec/ecdsa_default_vrfy_raw.c b/src/ec/ecdsa_default_vrfy_raw.c index e564a10..3c40681 100644 --- a/src/ec/ecdsa_default_vrfy_raw.c +++ b/src/ec/ecdsa_default_vrfy_raw.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ec.h */ br_ecdsa_vrfy diff --git a/src/ec/ecdsa_i15_bits.c b/src/ec/ecdsa_i15_bits.c index 402d14a..eb84259 100644 --- a/src/ec/ecdsa_i15_bits.c +++ b/src/ec/ecdsa_i15_bits.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/ec/ecdsa_i15_sign_asn1.c b/src/ec/ecdsa_i15_sign_asn1.c index ab4a283..79b2fce 100644 --- a/src/ec/ecdsa_i15_sign_asn1.c +++ b/src/ec/ecdsa_i15_sign_asn1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define ORDER_LEN ((BR_MAX_EC_SIZE + 7) >> 3) diff --git a/src/ec/ecdsa_i15_sign_raw.c b/src/ec/ecdsa_i15_sign_raw.c index 39b2e1d..9ea11a9 100644 --- a/src/ec/ecdsa_i15_sign_raw.c +++ b/src/ec/ecdsa_i15_sign_raw.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define I15_LEN ((BR_MAX_EC_SIZE + 29) / 15) #define POINT_LEN (1 + (((BR_MAX_EC_SIZE + 7) >> 3) << 1)) diff --git a/src/ec/ecdsa_i15_vrfy_asn1.c b/src/ec/ecdsa_i15_vrfy_asn1.c index f4bef99..4b32ef1 100644 --- a/src/ec/ecdsa_i15_vrfy_asn1.c +++ b/src/ec/ecdsa_i15_vrfy_asn1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define FIELD_LEN ((BR_MAX_EC_SIZE + 7) >> 3) diff --git a/src/ec/ecdsa_i15_vrfy_raw.c b/src/ec/ecdsa_i15_vrfy_raw.c index 14dd5e4..09c701b 100644 --- a/src/ec/ecdsa_i15_vrfy_raw.c +++ b/src/ec/ecdsa_i15_vrfy_raw.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define I15_LEN ((BR_MAX_EC_SIZE + 29) / 15) #define POINT_LEN (1 + (((BR_MAX_EC_SIZE + 7) >> 3) << 1)) diff --git a/src/ec/ecdsa_i31_bits.c b/src/ec/ecdsa_i31_bits.c index 9a8d673..6cc1985 100644 --- a/src/ec/ecdsa_i31_bits.c +++ b/src/ec/ecdsa_i31_bits.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/ec/ecdsa_i31_sign_asn1.c b/src/ec/ecdsa_i31_sign_asn1.c index cf0d351..5534c86 100644 --- a/src/ec/ecdsa_i31_sign_asn1.c +++ b/src/ec/ecdsa_i31_sign_asn1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define ORDER_LEN ((BR_MAX_EC_SIZE + 7) >> 3) diff --git a/src/ec/ecdsa_i31_sign_raw.c b/src/ec/ecdsa_i31_sign_raw.c index 1df98fe..b4786d2 100644 --- a/src/ec/ecdsa_i31_sign_raw.c +++ b/src/ec/ecdsa_i31_sign_raw.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define I31_LEN ((BR_MAX_EC_SIZE + 61) / 31) #define POINT_LEN (1 + (((BR_MAX_EC_SIZE + 7) >> 3) << 1)) diff --git a/src/ec/ecdsa_i31_vrfy_asn1.c b/src/ec/ecdsa_i31_vrfy_asn1.c index 4161aaa..b052ad3 100644 --- a/src/ec/ecdsa_i31_vrfy_asn1.c +++ b/src/ec/ecdsa_i31_vrfy_asn1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define FIELD_LEN ((BR_MAX_EC_SIZE + 7) >> 3) diff --git a/src/ec/ecdsa_i31_vrfy_raw.c b/src/ec/ecdsa_i31_vrfy_raw.c index 259477f..7e376eb 100644 --- a/src/ec/ecdsa_i31_vrfy_raw.c +++ b/src/ec/ecdsa_i31_vrfy_raw.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define I31_LEN ((BR_MAX_EC_SIZE + 61) / 31) #define POINT_LEN (1 + (((BR_MAX_EC_SIZE + 7) >> 3) << 1)) diff --git a/src/ec/ecdsa_rta.c b/src/ec/ecdsa_rta.c index 005c62c..a43491a 100644 --- a/src/ec/ecdsa_rta.c +++ b/src/ec/ecdsa_rta.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Compute ASN.1 encoded length for the provided integer. The ASN.1 diff --git a/src/hash/dig_oid.c b/src/hash/dig_oid.c index cd9692c..e23b83c 100644 --- a/src/hash/dig_oid.c +++ b/src/hash/dig_oid.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * This file contains the encoded OID for the standard hash functions. diff --git a/src/hash/dig_size.c b/src/hash/dig_size.c index 4625d2c..4e34a0d 100644 --- a/src/hash/dig_size.c +++ b/src/hash/dig_size.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ size_t diff --git a/src/hash/ghash_ctmul.c b/src/hash/ghash_ctmul.c index 3623202..f7decdd 100644 --- a/src/hash/ghash_ctmul.c +++ b/src/hash/ghash_ctmul.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * We compute "carryless multiplications" through normal integer diff --git a/src/hash/ghash_ctmul32.c b/src/hash/ghash_ctmul32.c index c66af46..644421f 100644 --- a/src/hash/ghash_ctmul32.c +++ b/src/hash/ghash_ctmul32.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * This implementation uses 32-bit multiplications, and only the low diff --git a/src/hash/ghash_ctmul64.c b/src/hash/ghash_ctmul64.c index a46f16f..be7dba6 100644 --- a/src/hash/ghash_ctmul64.c +++ b/src/hash/ghash_ctmul64.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * This is the 64-bit variant of br_ghash_ctmul32(), with 64-bit operands diff --git a/src/hash/ghash_pclmul.c b/src/hash/ghash_pclmul.c index a58e7dc..3e834a1 100644 --- a/src/hash/ghash_pclmul.c +++ b/src/hash/ghash_pclmul.c @@ -23,7 +23,7 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" /* * This is the GHASH implementation that leverages the pclmulqdq opcode diff --git a/src/hash/ghash_pwr8.c b/src/hash/ghash_pwr8.c index 2e7b0f4..707ab2f 100644 --- a/src/hash/ghash_pwr8.c +++ b/src/hash/ghash_pwr8.c @@ -23,7 +23,7 @@ */ #define BR_POWER_ASM_MACROS 1 -#include "inner.h" +#include "../inner.h" /* * This is the GHASH implementation that leverages the POWER8 opcodes. diff --git a/src/hash/md5.c b/src/hash/md5.c index 0df7abe..2b48ebc 100644 --- a/src/hash/md5.c +++ b/src/hash/md5.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define F(B, C, D) ((((C) ^ (D)) & (B)) ^ (D)) #define G(B, C, D) ((((C) ^ (B)) & (D)) ^ (C)) diff --git a/src/hash/md5sha1.c b/src/hash/md5sha1.c index f701aee..9116884 100644 --- a/src/hash/md5sha1.c +++ b/src/hash/md5sha1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl.h */ void diff --git a/src/hash/mgf1.c b/src/hash/mgf1.c index 7a23588..4cb152f 100644 --- a/src/hash/mgf1.c +++ b/src/hash/mgf1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/hash/multihash.c b/src/hash/multihash.c index b6df2e0..84dc95c 100644 --- a/src/hash/multihash.c +++ b/src/hash/multihash.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * An aggregate context that is large enough for all supported hash diff --git a/src/hash/sha1.c b/src/hash/sha1.c index 4f65d84..0694046 100644 --- a/src/hash/sha1.c +++ b/src/hash/sha1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define F(B, C, D) ((((C) ^ (D)) & (B)) ^ (D)) #define G(B, C, D) ((B) ^ (C) ^ (D)) diff --git a/src/hash/sha2big.c b/src/hash/sha2big.c index 5be92ed..3464318 100644 --- a/src/hash/sha2big.c +++ b/src/hash/sha2big.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define CH(X, Y, Z) ((((Y) ^ (Z)) & (X)) ^ (Z)) #define MAJ(X, Y, Z) (((Y) & (Z)) | (((Y) | (Z)) & (X))) diff --git a/src/hash/sha2small.c b/src/hash/sha2small.c index ca19655..6cba2a4 100644 --- a/src/hash/sha2small.c +++ b/src/hash/sha2small.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define CH(X, Y, Z) ((((Y) ^ (Z)) & (X)) ^ (Z)) #define MAJ(X, Y, Z) (((Y) & (Z)) | (((Y) | (Z)) & (X))) diff --git a/src/inner.h b/src/inner.h index 07e1d0a..354cb99 100644 --- a/src/inner.h +++ b/src/inner.h @@ -25,11 +25,11 @@ #ifndef INNER_H__ #define INNER_H__ -#include -#include +#include +#include #include "config.h" -#include "bearssl.h" +#include "../inc/bearssl.h" /* * On MSVC, disable the warning about applying unary minus on an @@ -279,7 +279,7 @@ * GCC 4.8+, Clang 3.7+ and MSC 2012+. */ #ifndef BR_AES_X86NI -#if (BR_i386 || BR_amd64) && (BR_GCC_4_8 || BR_CLANG_3_7 || BR_MSC_2012) +#if ((BR_i386 || BR_amd64) && (BR_GCC_4_8 || BR_CLANG_3_7 || BR_MSC_2012) && !__linux__) #define BR_AES_X86NI 1 #endif #endif @@ -289,7 +289,7 @@ * GCC 4.4+, Clang 3.7+ and MSC 2005+. */ #ifndef BR_SSE2 -#if (BR_i386 || BR_amd64) && (BR_GCC_4_4 || BR_CLANG_3_7 || BR_MSC_2005) +#if ((BR_i386 || BR_amd64) && (BR_GCC_4_4 || BR_CLANG_3_7 || BR_MSC_2005) && !__linux__) #define BR_SSE2 1 #endif #endif @@ -925,6 +925,7 @@ BIT_LENGTH(uint32_t x) return k; } +#ifndef MIN /* * Compute the minimum of x and y. */ @@ -933,7 +934,9 @@ MIN(uint32_t x, uint32_t y) { return MUX(GT(x, y), y, x); } +#endif +#ifndef MAX /* * Compute the maximum of x and y. */ @@ -942,6 +945,7 @@ MAX(uint32_t x, uint32_t y) { return MUX(GT(x, y), x, y); } +#endif /* * Multiply two 32-bit integers, with a 64-bit result. This default @@ -2522,7 +2526,7 @@ int br_ssl_choose_hash(unsigned bf); #define BR_TARGETS_X86_DOWN #endif -#if BR_GCC || BR_CLANG +#if (BR_GCC || BR_CLANG) && !__linux__ BR_TARGETS_X86_UP #include #include @@ -2541,7 +2545,9 @@ static inline int br_cpuid(uint32_t mask_eax, uint32_t mask_ebx, uint32_t mask_ecx, uint32_t mask_edx) { -#if BR_GCC || BR_CLANG +#ifdef __linux__ + return 0; +#elif BR_GCC || BR_CLANG unsigned eax, ebx, ecx, edx; if (__get_cpuid(1, &eax, &ebx, &ecx, &edx)) { diff --git a/src/int/i15_add.c b/src/int/i15_add.c index 97e29b8..151d9d7 100644 --- a/src/int/i15_add.c +++ b/src/int/i15_add.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i15_bitlen.c b/src/int/i15_bitlen.c index ad74467..e0a92fa 100644 --- a/src/int/i15_bitlen.c +++ b/src/int/i15_bitlen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i15_decmod.c b/src/int/i15_decmod.c index 6076c57..e70a0de 100644 --- a/src/int/i15_decmod.c +++ b/src/int/i15_decmod.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i15_decode.c b/src/int/i15_decode.c index fc2c0be..28738dc 100644 --- a/src/int/i15_decode.c +++ b/src/int/i15_decode.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_decred.c b/src/int/i15_decred.c index 81e7dd1..ec06f50 100644 --- a/src/int/i15_decred.c +++ b/src/int/i15_decred.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_encode.c b/src/int/i15_encode.c index 50668f4..fa6520f 100644 --- a/src/int/i15_encode.c +++ b/src/int/i15_encode.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_fmont.c b/src/int/i15_fmont.c index 3450b72..410b1c4 100644 --- a/src/int/i15_fmont.c +++ b/src/int/i15_fmont.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_iszero.c b/src/int/i15_iszero.c index d4b6f10..0a1de91 100644 --- a/src/int/i15_iszero.c +++ b/src/int/i15_iszero.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i15_moddiv.c b/src/int/i15_moddiv.c index 45af756..c5ae0a2 100644 --- a/src/int/i15_moddiv.c +++ b/src/int/i15_moddiv.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * In this file, we handle big integers with a custom format, i.e. diff --git a/src/int/i15_modpow.c b/src/int/i15_modpow.c index 9bf304e..197a02b 100644 --- a/src/int/i15_modpow.c +++ b/src/int/i15_modpow.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_modpow2.c b/src/int/i15_modpow2.c index 4b32118..cbfa06d 100644 --- a/src/int/i15_modpow2.c +++ b/src/int/i15_modpow2.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i15_montmul.c b/src/int/i15_montmul.c index e98bc32..3cbca33 100644 --- a/src/int/i15_montmul.c +++ b/src/int/i15_montmul.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_mulacc.c b/src/int/i15_mulacc.c index 7a073ac..3091e41 100644 --- a/src/int/i15_mulacc.c +++ b/src/int/i15_mulacc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_muladd.c b/src/int/i15_muladd.c index c4b7216..83bc733 100644 --- a/src/int/i15_muladd.c +++ b/src/int/i15_muladd.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Constant-time division. The divisor must not be larger than 16 bits, diff --git a/src/int/i15_ninv15.c b/src/int/i15_ninv15.c index de3a3ba..88a7d15 100644 --- a/src/int/i15_ninv15.c +++ b/src/int/i15_ninv15.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint16_t diff --git a/src/int/i15_reduce.c b/src/int/i15_reduce.c index 0931b10..f91d07f 100644 --- a/src/int/i15_reduce.c +++ b/src/int/i15_reduce.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_rshift.c b/src/int/i15_rshift.c index f9991ab..34aaa00 100644 --- a/src/int/i15_rshift.c +++ b/src/int/i15_rshift.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i15_sub.c b/src/int/i15_sub.c index 1983c4d..edfea5a 100644 --- a/src/int/i15_sub.c +++ b/src/int/i15_sub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i15_tmont.c b/src/int/i15_tmont.c index d5c4b8b..1f34ed5 100644 --- a/src/int/i15_tmont.c +++ b/src/int/i15_tmont.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_add.c b/src/int/i31_add.c index 2ca47c6..79d63b7 100644 --- a/src/int/i31_add.c +++ b/src/int/i31_add.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i31_bitlen.c b/src/int/i31_bitlen.c index 3e127c2..62fef1f 100644 --- a/src/int/i31_bitlen.c +++ b/src/int/i31_bitlen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i31_decmod.c b/src/int/i31_decmod.c index 3cd7bfe..36a73e7 100644 --- a/src/int/i31_decmod.c +++ b/src/int/i31_decmod.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i31_decode.c b/src/int/i31_decode.c index 8ec6d90..c47d0eb 100644 --- a/src/int/i31_decode.c +++ b/src/int/i31_decode.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_decred.c b/src/int/i31_decred.c index 43db662..45bce56 100644 --- a/src/int/i31_decred.c +++ b/src/int/i31_decred.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_encode.c b/src/int/i31_encode.c index b6b40c4..519330f 100644 --- a/src/int/i31_encode.c +++ b/src/int/i31_encode.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_fmont.c b/src/int/i31_fmont.c index c24b417..42b13ab 100644 --- a/src/int/i31_fmont.c +++ b/src/int/i31_fmont.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_iszero.c b/src/int/i31_iszero.c index 8a7ea44..7c91eb7 100644 --- a/src/int/i31_iszero.c +++ b/src/int/i31_iszero.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i31_moddiv.c b/src/int/i31_moddiv.c index 9950591..6dda493 100644 --- a/src/int/i31_moddiv.c +++ b/src/int/i31_moddiv.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * In this file, we handle big integers with a custom format, i.e. diff --git a/src/int/i31_modpow.c b/src/int/i31_modpow.c index 4ef3f5d..7fba8a4 100644 --- a/src/int/i31_modpow.c +++ b/src/int/i31_modpow.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_modpow2.c b/src/int/i31_modpow2.c index 0b8f8cf..b5f023f 100644 --- a/src/int/i31_modpow2.c +++ b/src/int/i31_modpow2.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i31_montmul.c b/src/int/i31_montmul.c index 758f8f4..5b6388f 100644 --- a/src/int/i31_montmul.c +++ b/src/int/i31_montmul.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_mulacc.c b/src/int/i31_mulacc.c index 7410e54..ebba649 100644 --- a/src/int/i31_mulacc.c +++ b/src/int/i31_mulacc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_muladd.c b/src/int/i31_muladd.c index eecd9e2..82f80ca 100644 --- a/src/int/i31_muladd.c +++ b/src/int/i31_muladd.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_ninv31.c b/src/int/i31_ninv31.c index dd83c96..634363c 100644 --- a/src/int/i31_ninv31.c +++ b/src/int/i31_ninv31.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i31_reduce.c b/src/int/i31_reduce.c index 5c9523e..a856601 100644 --- a/src/int/i31_reduce.c +++ b/src/int/i31_reduce.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_rshift.c b/src/int/i31_rshift.c index db6ba0b..5fff7fe 100644 --- a/src/int/i31_rshift.c +++ b/src/int/i31_rshift.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i31_sub.c b/src/int/i31_sub.c index 3910895..7a1395f 100644 --- a/src/int/i31_sub.c +++ b/src/int/i31_sub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i31_tmont.c b/src/int/i31_tmont.c index 4798ff6..8b711c1 100644 --- a/src/int/i31_tmont.c +++ b/src/int/i31_tmont.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_add.c b/src/int/i32_add.c index 620baff..680e968 100644 --- a/src/int/i32_add.c +++ b/src/int/i32_add.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i32_bitlen.c b/src/int/i32_bitlen.c index 40ce9fa..485a16b 100644 --- a/src/int/i32_bitlen.c +++ b/src/int/i32_bitlen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i32_decmod.c b/src/int/i32_decmod.c index a859af1..5cb9d9c 100644 --- a/src/int/i32_decmod.c +++ b/src/int/i32_decmod.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i32_decode.c b/src/int/i32_decode.c index f289038..364d634 100644 --- a/src/int/i32_decode.c +++ b/src/int/i32_decode.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_decred.c b/src/int/i32_decred.c index dc476db..e047cad 100644 --- a/src/int/i32_decred.c +++ b/src/int/i32_decred.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_div32.c b/src/int/i32_div32.c index d8b8023..291de98 100644 --- a/src/int/i32_div32.c +++ b/src/int/i32_div32.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i32_encode.c b/src/int/i32_encode.c index 303652f..c1c24fe 100644 --- a/src/int/i32_encode.c +++ b/src/int/i32_encode.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_fmont.c b/src/int/i32_fmont.c index dc1c934..8dc9a8e 100644 --- a/src/int/i32_fmont.c +++ b/src/int/i32_fmont.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_iszero.c b/src/int/i32_iszero.c index 659df7f..bde964e 100644 --- a/src/int/i32_iszero.c +++ b/src/int/i32_iszero.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i32_modpow.c b/src/int/i32_modpow.c index 034aba0..15a1fe7 100644 --- a/src/int/i32_modpow.c +++ b/src/int/i32_modpow.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_montmul.c b/src/int/i32_montmul.c index 7edb376..854be76 100644 --- a/src/int/i32_montmul.c +++ b/src/int/i32_montmul.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_mulacc.c b/src/int/i32_mulacc.c index 55da385..154e903 100644 --- a/src/int/i32_mulacc.c +++ b/src/int/i32_mulacc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_muladd.c b/src/int/i32_muladd.c index dd526ad..f9a8465 100644 --- a/src/int/i32_muladd.c +++ b/src/int/i32_muladd.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_ninv32.c b/src/int/i32_ninv32.c index 6564434..9ea91e5 100644 --- a/src/int/i32_ninv32.c +++ b/src/int/i32_ninv32.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i32_reduce.c b/src/int/i32_reduce.c index 90fff09..deabc46 100644 --- a/src/int/i32_reduce.c +++ b/src/int/i32_reduce.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i32_sub.c b/src/int/i32_sub.c index 9c50023..2441461 100644 --- a/src/int/i32_sub.c +++ b/src/int/i32_sub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/int/i32_tmont.c b/src/int/i32_tmont.c index 058cd88..7c422c4 100644 --- a/src/int/i32_tmont.c +++ b/src/int/i32_tmont.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/int/i62_modpow2.c b/src/int/i62_modpow2.c index 2db537f..9d2e1f0 100644 --- a/src/int/i62_modpow2.c +++ b/src/int/i62_modpow2.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/kdf/hkdf.c b/src/kdf/hkdf.c index 6a36851..8beb839 100644 --- a/src/kdf/hkdf.c +++ b/src/kdf/hkdf.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" const unsigned char br_hkdf_no_salt = 0; diff --git a/src/kdf/shake.c b/src/kdf/shake.c index 80d7176..ece8b42 100644 --- a/src/kdf/shake.c +++ b/src/kdf/shake.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Round constants. diff --git a/src/linuxkm.c b/src/linuxkm.c new file mode 100644 index 0000000..beea8fe --- /dev/null +++ b/src/linuxkm.c @@ -0,0 +1,73 @@ +#include +#include "inner.h" + +EXPORT_SYMBOL(br_ssl_server_init_full_rsa); +EXPORT_SYMBOL(br_ssl_server_reset); +EXPORT_SYMBOL(br_ssl_server_init_full_ec); +EXPORT_SYMBOL(br_ssl_client_init_full); +EXPORT_SYMBOL(br_ssl_client_reset); +EXPORT_SYMBOL(br_ssl_engine_set_buffer); +EXPORT_SYMBOL(br_ssl_engine_flush); +EXPORT_SYMBOL(br_ssl_engine_close); +EXPORT_SYMBOL(br_ssl_client_set_single_rsa); +EXPORT_SYMBOL(br_sslio_init); +EXPORT_SYMBOL(br_sslio_read); +EXPORT_SYMBOL(br_sslio_write_all); +EXPORT_SYMBOL(br_sslio_flush); +EXPORT_SYMBOL(br_sslio_close); +EXPORT_SYMBOL(br_rsa_pkcs1_sign_get_default); +EXPORT_SYMBOL(br_x509_minimal_init_full); +EXPORT_SYMBOL(br_ssl_engine_set_default_rsavrfy); +EXPORT_SYMBOL(br_rsa_keygen_get_default); +EXPORT_SYMBOL(br_hmac_drbg_init); +EXPORT_SYMBOL(br_encode_rsa_pkcs8_der); +EXPORT_SYMBOL(br_sha256_vtable); +EXPORT_SYMBOL(br_rsa_compute_privexp_get_default); +EXPORT_SYMBOL(br_prng_seeder_system); +EXPORT_SYMBOL(br_x509_decoder_init); +EXPORT_SYMBOL(br_x509_decoder_push); +EXPORT_SYMBOL(br_ssl_engine_set_suites); +EXPORT_SYMBOL(br_ssl_engine_current_state); +EXPORT_SYMBOL(br_ssl_engine_recvrec_buf); +EXPORT_SYMBOL(br_ssl_engine_recvrec_ack); +EXPORT_SYMBOL(br_ssl_engine_sendrec_buf); +EXPORT_SYMBOL(br_ssl_engine_sendrec_ack); +EXPORT_SYMBOL(br_ssl_engine_recvapp_buf); +EXPORT_SYMBOL(br_ssl_engine_recvapp_ack); +EXPORT_SYMBOL(br_ssl_engine_sendapp_buf); +EXPORT_SYMBOL(br_ssl_engine_sendapp_ack); +EXPORT_SYMBOL(br_pem_decoder_init); +EXPORT_SYMBOL(br_pem_decoder_event); +EXPORT_SYMBOL(br_pem_decoder_push); +EXPORT_SYMBOL(br_pem_encode); +EXPORT_SYMBOL(br_ec_compute_pub); +EXPORT_SYMBOL(br_ec_keygen); +EXPORT_SYMBOL(br_ec_get_default); +EXPORT_SYMBOL(br_encode_ec_pkcs8_der); +EXPORT_SYMBOL(br_ssl_engine_set_default_ecdsa); +EXPORT_SYMBOL(br_ssl_client_set_single_ec); +EXPORT_SYMBOL(br_ecdsa_sign_asn1_get_default); +EXPORT_SYMBOL(br_ecdsa_sign_raw_get_default); +EXPORT_SYMBOL(br_hmac_key_init); +EXPORT_SYMBOL(br_hmac_init); +EXPORT_SYMBOL(br_hmac_update); +EXPORT_SYMBOL(br_hmac_out); +EXPORT_SYMBOL(br_rsa_i62_pkcs1_vrfy); +EXPORT_SYMBOL(br_sha256_init); +EXPORT_SYMBOL(br_sha256_update); +EXPORT_SYMBOL(br_sha256_out); + +static int __init bearssl_init(void) +{ + return 0; +} + +static void __exit bearssl_exit(void) +{ +} + +module_init(bearssl_init); +module_exit(bearssl_exit); + +MODULE_LICENSE("Dual MIT/GPL"); +MODULE_AUTHOR("Riptides Labs, Inc "); diff --git a/src/mac/hmac.c b/src/mac/hmac.c index b438798..cd9a0b1 100644 --- a/src/mac/hmac.c +++ b/src/mac/hmac.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static inline size_t block_size(const br_hash_class *dig) diff --git a/src/mac/hmac_ct.c b/src/mac/hmac_ct.c index e1c1d80..06d3706 100644 --- a/src/mac/hmac_ct.c +++ b/src/mac/hmac_ct.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static inline size_t hash_size(const br_hash_class *dig) diff --git a/src/rand/aesctr_drbg.c b/src/rand/aesctr_drbg.c index 8dbd501..d362948 100644 --- a/src/rand/aesctr_drbg.c +++ b/src/rand/aesctr_drbg.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rand.h */ void diff --git a/src/rand/hmac_drbg.c b/src/rand/hmac_drbg.c index d746756..9805416 100644 --- a/src/rand/hmac_drbg.c +++ b/src/rand/hmac_drbg.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl.h */ void diff --git a/src/rand/sysrng.c b/src/rand/sysrng.c index 5a92114..16a1fc2 100644 --- a/src/rand/sysrng.c +++ b/src/rand/sysrng.c @@ -23,17 +23,14 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" #if BR_USE_GETENTROPY #include #endif #if BR_USE_URANDOM -#include -#include -#include -#include +#include #endif #if BR_USE_WIN32_RAND @@ -42,211 +39,27 @@ #pragma comment(lib, "advapi32") #endif -/* - * Seeder that uses the RDRAND opcodes (on x86 CPU). - */ -#if BR_RDRAND -BR_TARGETS_X86_UP -BR_TARGET("rdrnd") -static int -seeder_rdrand(const br_prng_class **ctx) -{ - unsigned char tmp[32]; - size_t u; - - for (u = 0; u < sizeof tmp; u += sizeof(uint32_t)) { - int j; - uint32_t x; - - /* - * We use the 32-bit intrinsic so that code is compatible - * with both 32-bit and 64-bit architectures. - * - * Intel recommends trying at least 10 times in case of - * failure. - * - * AMD bug: there are reports that some AMD processors - * have a bug that makes them fail silently after a - * suspend/resume cycle, in which case RDRAND will report - * a success but always return 0xFFFFFFFF. - * see: https://bugzilla.kernel.org/show_bug.cgi?id=85911 - * - * As a mitigation, if the 32-bit value is 0 or -1, then - * it is considered a failure and tried again. This should - * reliably detect the buggy case, at least. This also - * implies that the selected seed values can never be - * 0x00000000 or 0xFFFFFFFF, which is not a problem since - * we are generating a seed for a PRNG, and we overdo it - * a bit (we generate 32 bytes of randomness, and 256 bits - * of entropy are really overkill). - */ - for (j = 0; j < 10; j ++) { - if (_rdrand32_step(&x) && x != 0 && x != (uint32_t)-1) { - goto next_word; - } - } - return 0; - next_word: - br_enc32le(tmp + u, x); - } - (*ctx)->update(ctx, tmp, sizeof tmp); - return 1; -} -BR_TARGETS_X86_DOWN - -static int -rdrand_supported(void) -{ - /* - * The RDRND support is bit 30 of ECX, as returned by CPUID. - */ - return br_cpuid(0, 0, 0x40000000, 0); -} -#endif - -/* - * Seeder that uses /dev/urandom (on Unix-like systems). - */ -#if BR_USE_URANDOM -static int -seeder_urandom(const br_prng_class **ctx) -{ - int f; - - f = open("/dev/urandom", O_RDONLY); - if (f >= 0) { - unsigned char tmp[32]; - size_t u; - - for (u = 0; u < sizeof tmp;) { - ssize_t len; - - len = read(f, tmp + u, (sizeof tmp) - u); - if (len < 0) { - if (errno == EINTR) { - continue; - } - break; - } - u += (size_t)len; - } - close(f); - if (u == sizeof tmp) { - (*ctx)->update(ctx, tmp, sizeof tmp); - return 1; - } - } - return 0; -} -#endif - /* * Seeder that uses getentropy() (backed by getrandom() on some systems, * e.g. Linux). On failure, it will use the /dev/urandom seeder (if * enabled). */ -#if BR_USE_GETENTROPY static int seeder_getentropy(const br_prng_class **ctx) { unsigned char tmp[32]; - if (getentropy(tmp, sizeof tmp) == 0) { - (*ctx)->update(ctx, tmp, sizeof tmp); - return 1; - } -#if BR_USE_URANDOM - return seeder_urandom(ctx); -#else - return 0; -#endif -} -#endif - -/* - * Seeder that uses CryptGenRandom() (on Windows). - */ -#if BR_USE_WIN32_RAND -static int -seeder_win32(const br_prng_class **ctx) -{ - HCRYPTPROV hp; - - if (CryptAcquireContext(&hp, 0, 0, PROV_RSA_FULL, - CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) - { - BYTE buf[32]; - BOOL r; - - r = CryptGenRandom(hp, sizeof buf, buf); - CryptReleaseContext(hp, 0); - if (r) { - (*ctx)->update(ctx, buf, sizeof buf); - return 1; - } - } - return 0; -} -#endif - -/* - * An aggregate seeder that uses RDRAND, and falls back to an OS-provided - * source if RDRAND fails. - */ -#if BR_RDRAND && (BR_USE_GETENTROPY || BR_USE_URANDOM || BR_USE_WIN32_RAND) -static int -seeder_rdrand_with_fallback(const br_prng_class **ctx) -{ - if (!seeder_rdrand(ctx)) { -#if BR_USE_GETENTROPY - return seeder_getentropy(ctx); -#elif BR_USE_URANDOM - return seeder_urandom(ctx); -#elif BR_USE_WIN32_RAND - return seeder_win32(ctx); -#else -#error "macro selection has gone wrong" -#endif - } + get_random_bytes(tmp, sizeof tmp); + (*ctx)->update(ctx, tmp, sizeof tmp); return 1; } -#endif /* see bearssl_rand.h */ br_prng_seeder br_prng_seeder_system(const char **name) { -#if BR_RDRAND - if (rdrand_supported()) { - if (name != NULL) { - *name = "rdrand"; - } -#if BR_USE_GETENTROPY || BR_USE_URANDOM || BR_USE_WIN32_RAND - return &seeder_rdrand_with_fallback; -#else - return &seeder_rdrand; -#endif - } -#endif -#if BR_USE_GETENTROPY if (name != NULL) { *name = "getentropy"; } return &seeder_getentropy; -#elif BR_USE_URANDOM - if (name != NULL) { - *name = "urandom"; - } - return &seeder_urandom; -#elif BR_USE_WIN32_RAND - if (name != NULL) { - *name = "win32"; - } - return &seeder_win32; -#else - if (name != NULL) { - *name = "none"; - } - return 0; -#endif } diff --git a/src/rsa/rsa_default_keygen.c b/src/rsa/rsa_default_keygen.c index f2e83c8..f2236d6 100644 --- a/src/rsa/rsa_default_keygen.c +++ b/src/rsa/rsa_default_keygen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_keygen diff --git a/src/rsa/rsa_default_modulus.c b/src/rsa/rsa_default_modulus.c index 57d4be5..0756b07 100644 --- a/src/rsa/rsa_default_modulus.c +++ b/src/rsa/rsa_default_modulus.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_compute_modulus diff --git a/src/rsa/rsa_default_oaep_decrypt.c b/src/rsa/rsa_default_oaep_decrypt.c index 7345d64..1f5db5b 100644 --- a/src/rsa/rsa_default_oaep_decrypt.c +++ b/src/rsa/rsa_default_oaep_decrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_oaep_decrypt diff --git a/src/rsa/rsa_default_oaep_encrypt.c b/src/rsa/rsa_default_oaep_encrypt.c index ae33fcc..cc8f2fd 100644 --- a/src/rsa/rsa_default_oaep_encrypt.c +++ b/src/rsa/rsa_default_oaep_encrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_oaep_encrypt diff --git a/src/rsa/rsa_default_pkcs1_sign.c b/src/rsa/rsa_default_pkcs1_sign.c index e926704..8788b26 100644 --- a/src/rsa/rsa_default_pkcs1_sign.c +++ b/src/rsa/rsa_default_pkcs1_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_pkcs1_sign diff --git a/src/rsa/rsa_default_pkcs1_vrfy.c b/src/rsa/rsa_default_pkcs1_vrfy.c index b3dbeb7..a60d051 100644 --- a/src/rsa/rsa_default_pkcs1_vrfy.c +++ b/src/rsa/rsa_default_pkcs1_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_pkcs1_vrfy diff --git a/src/rsa/rsa_default_priv.c b/src/rsa/rsa_default_priv.c index bb0b2c0..994dfdf 100644 --- a/src/rsa/rsa_default_priv.c +++ b/src/rsa/rsa_default_priv.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_private diff --git a/src/rsa/rsa_default_privexp.c b/src/rsa/rsa_default_privexp.c index cda4555..420ca7a 100644 --- a/src/rsa/rsa_default_privexp.c +++ b/src/rsa/rsa_default_privexp.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_compute_privexp diff --git a/src/rsa/rsa_default_pss_sign.c b/src/rsa/rsa_default_pss_sign.c index ce4f3e0..d55b952 100644 --- a/src/rsa/rsa_default_pss_sign.c +++ b/src/rsa/rsa_default_pss_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_pss_sign diff --git a/src/rsa/rsa_default_pss_vrfy.c b/src/rsa/rsa_default_pss_vrfy.c index e3a9ad9..e556410 100644 --- a/src/rsa/rsa_default_pss_vrfy.c +++ b/src/rsa/rsa_default_pss_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_pss_vrfy diff --git a/src/rsa/rsa_default_pub.c b/src/rsa/rsa_default_pub.c index a1f03ef..9d141e7 100644 --- a/src/rsa/rsa_default_pub.c +++ b/src/rsa/rsa_default_pub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_public diff --git a/src/rsa/rsa_default_pubexp.c b/src/rsa/rsa_default_pubexp.c index 47bc000..59c3175 100644 --- a/src/rsa/rsa_default_pubexp.c +++ b/src/rsa/rsa_default_pubexp.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ br_rsa_compute_pubexp diff --git a/src/rsa/rsa_i15_keygen.c b/src/rsa/rsa_i15_keygen.c index e8da419..f0ba8c4 100644 --- a/src/rsa/rsa_i15_keygen.c +++ b/src/rsa/rsa_i15_keygen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Make a random integer of the provided size. The size is encoded. diff --git a/src/rsa/rsa_i15_modulus.c b/src/rsa/rsa_i15_modulus.c index 16458c3..0685b30 100644 --- a/src/rsa/rsa_i15_modulus.c +++ b/src/rsa/rsa_i15_modulus.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ size_t diff --git a/src/rsa/rsa_i15_oaep_decrypt.c b/src/rsa/rsa_i15_oaep_decrypt.c index 927eecd..cfb4aa8 100644 --- a/src/rsa/rsa_i15_oaep_decrypt.c +++ b/src/rsa/rsa_i15_oaep_decrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i15_oaep_encrypt.c b/src/rsa/rsa_i15_oaep_encrypt.c index b9a6cfa..9a3a076 100644 --- a/src/rsa/rsa_i15_oaep_encrypt.c +++ b/src/rsa/rsa_i15_oaep_encrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ size_t diff --git a/src/rsa/rsa_i15_pkcs1_sign.c b/src/rsa/rsa_i15_pkcs1_sign.c index f519423..b2e3090 100644 --- a/src/rsa/rsa_i15_pkcs1_sign.c +++ b/src/rsa/rsa_i15_pkcs1_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i15_pkcs1_vrfy.c b/src/rsa/rsa_i15_pkcs1_vrfy.c index 2c35184..3c4f341 100644 --- a/src/rsa/rsa_i15_pkcs1_vrfy.c +++ b/src/rsa/rsa_i15_pkcs1_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i15_priv.c b/src/rsa/rsa_i15_priv.c index 177cc3a..f1f0603 100644 --- a/src/rsa/rsa_i15_priv.c +++ b/src/rsa/rsa_i15_priv.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define U (2 + ((BR_MAX_RSA_FACTOR + 14) / 15)) #define TLEN (8 * U) diff --git a/src/rsa/rsa_i15_privexp.c b/src/rsa/rsa_i15_privexp.c index 57d6918..a815484 100644 --- a/src/rsa/rsa_i15_privexp.c +++ b/src/rsa/rsa_i15_privexp.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ size_t diff --git a/src/rsa/rsa_i15_pss_sign.c b/src/rsa/rsa_i15_pss_sign.c index dd9385b..74c6dda 100644 --- a/src/rsa/rsa_i15_pss_sign.c +++ b/src/rsa/rsa_i15_pss_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i15_pss_vrfy.c b/src/rsa/rsa_i15_pss_vrfy.c index 7d9f2cb..91421a2 100644 --- a/src/rsa/rsa_i15_pss_vrfy.c +++ b/src/rsa/rsa_i15_pss_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i15_pub.c b/src/rsa/rsa_i15_pub.c index 9eab5e8..23e62dd 100644 --- a/src/rsa/rsa_i15_pub.c +++ b/src/rsa/rsa_i15_pub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * As a strict minimum, we need four buffers that can hold a diff --git a/src/rsa/rsa_i15_pubexp.c b/src/rsa/rsa_i15_pubexp.c index 803bff7..e65387d 100644 --- a/src/rsa/rsa_i15_pubexp.c +++ b/src/rsa/rsa_i15_pubexp.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Recompute public exponent, based on factor p and reduced private diff --git a/src/rsa/rsa_i31_keygen.c b/src/rsa/rsa_i31_keygen.c index 77708f8..f8bcd7d 100644 --- a/src/rsa/rsa_i31_keygen.c +++ b/src/rsa/rsa_i31_keygen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i31_keygen_inner.c b/src/rsa/rsa_i31_keygen_inner.c index 98df445..c03c9b4 100644 --- a/src/rsa/rsa_i31_keygen_inner.c +++ b/src/rsa/rsa_i31_keygen_inner.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Make a random integer of the provided size. The size is encoded. diff --git a/src/rsa/rsa_i31_modulus.c b/src/rsa/rsa_i31_modulus.c index f5f997f..d1fbde5 100644 --- a/src/rsa/rsa_i31_modulus.c +++ b/src/rsa/rsa_i31_modulus.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ size_t diff --git a/src/rsa/rsa_i31_oaep_decrypt.c b/src/rsa/rsa_i31_oaep_decrypt.c index 06fdd93..c88fee9 100644 --- a/src/rsa/rsa_i31_oaep_decrypt.c +++ b/src/rsa/rsa_i31_oaep_decrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i31_oaep_encrypt.c b/src/rsa/rsa_i31_oaep_encrypt.c index 367008c..816f14d 100644 --- a/src/rsa/rsa_i31_oaep_encrypt.c +++ b/src/rsa/rsa_i31_oaep_encrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ size_t diff --git a/src/rsa/rsa_i31_pkcs1_sign.c b/src/rsa/rsa_i31_pkcs1_sign.c index 784d3c2..8be8e62 100644 --- a/src/rsa/rsa_i31_pkcs1_sign.c +++ b/src/rsa/rsa_i31_pkcs1_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i31_pkcs1_vrfy.c b/src/rsa/rsa_i31_pkcs1_vrfy.c index e79a002..5816fe4 100644 --- a/src/rsa/rsa_i31_pkcs1_vrfy.c +++ b/src/rsa/rsa_i31_pkcs1_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i31_priv.c b/src/rsa/rsa_i31_priv.c index b1e1244..b478309 100644 --- a/src/rsa/rsa_i31_priv.c +++ b/src/rsa/rsa_i31_priv.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define U (2 + ((BR_MAX_RSA_FACTOR + 30) / 31)) #define TLEN (8 * U) diff --git a/src/rsa/rsa_i31_privexp.c b/src/rsa/rsa_i31_privexp.c index eee62a0..0a3a88e 100644 --- a/src/rsa/rsa_i31_privexp.c +++ b/src/rsa/rsa_i31_privexp.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ size_t diff --git a/src/rsa/rsa_i31_pss_sign.c b/src/rsa/rsa_i31_pss_sign.c index b06f3e2..63fa17f 100644 --- a/src/rsa/rsa_i31_pss_sign.c +++ b/src/rsa/rsa_i31_pss_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i31_pss_vrfy.c b/src/rsa/rsa_i31_pss_vrfy.c index 77a9b28..a68d033 100644 --- a/src/rsa/rsa_i31_pss_vrfy.c +++ b/src/rsa/rsa_i31_pss_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i31_pub.c b/src/rsa/rsa_i31_pub.c index d5f3fe2..ccbdfba 100644 --- a/src/rsa/rsa_i31_pub.c +++ b/src/rsa/rsa_i31_pub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * As a strict minimum, we need four buffers that can hold a diff --git a/src/rsa/rsa_i31_pubexp.c b/src/rsa/rsa_i31_pubexp.c index f26537d..adceec5 100644 --- a/src/rsa/rsa_i31_pubexp.c +++ b/src/rsa/rsa_i31_pubexp.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Recompute public exponent, based on factor p and reduced private diff --git a/src/rsa/rsa_i32_oaep_decrypt.c b/src/rsa/rsa_i32_oaep_decrypt.c index ecfd92b..a534f85 100644 --- a/src/rsa/rsa_i32_oaep_decrypt.c +++ b/src/rsa/rsa_i32_oaep_decrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i32_oaep_encrypt.c b/src/rsa/rsa_i32_oaep_encrypt.c index dc17f3f..96ec8f6 100644 --- a/src/rsa/rsa_i32_oaep_encrypt.c +++ b/src/rsa/rsa_i32_oaep_encrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ size_t diff --git a/src/rsa/rsa_i32_pkcs1_sign.c b/src/rsa/rsa_i32_pkcs1_sign.c index 44b6e6d..f732ff4 100644 --- a/src/rsa/rsa_i32_pkcs1_sign.c +++ b/src/rsa/rsa_i32_pkcs1_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i32_pkcs1_vrfy.c b/src/rsa/rsa_i32_pkcs1_vrfy.c index 6ee7a19..604b1bc 100644 --- a/src/rsa/rsa_i32_pkcs1_vrfy.c +++ b/src/rsa/rsa_i32_pkcs1_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i32_priv.c b/src/rsa/rsa_i32_priv.c index 05c22ec..ff39693 100644 --- a/src/rsa/rsa_i32_priv.c +++ b/src/rsa/rsa_i32_priv.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define U (1 + (BR_MAX_RSA_FACTOR >> 5)) diff --git a/src/rsa/rsa_i32_pss_sign.c b/src/rsa/rsa_i32_pss_sign.c index 0f72f92..8bd6025 100644 --- a/src/rsa/rsa_i32_pss_sign.c +++ b/src/rsa/rsa_i32_pss_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i32_pss_vrfy.c b/src/rsa/rsa_i32_pss_vrfy.c index 2e70d23..35f7cd6 100644 --- a/src/rsa/rsa_i32_pss_vrfy.c +++ b/src/rsa/rsa_i32_pss_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i32_pub.c b/src/rsa/rsa_i32_pub.c index 6e8d8e3..3ed9a38 100644 --- a/src/rsa/rsa_i32_pub.c +++ b/src/rsa/rsa_i32_pub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_i62_keygen.c b/src/rsa/rsa_i62_keygen.c index 992fe97..3ad8ddb 100644 --- a/src/rsa/rsa_i62_keygen.c +++ b/src/rsa/rsa_i62_keygen.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_oaep_decrypt.c b/src/rsa/rsa_i62_oaep_decrypt.c index 38470dd..734b955 100644 --- a/src/rsa/rsa_i62_oaep_decrypt.c +++ b/src/rsa/rsa_i62_oaep_decrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_oaep_encrypt.c b/src/rsa/rsa_i62_oaep_encrypt.c index cf41ecb..4756cc1 100644 --- a/src/rsa/rsa_i62_oaep_encrypt.c +++ b/src/rsa/rsa_i62_oaep_encrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_pkcs1_sign.c b/src/rsa/rsa_i62_pkcs1_sign.c index a20a084..0038717 100644 --- a/src/rsa/rsa_i62_pkcs1_sign.c +++ b/src/rsa/rsa_i62_pkcs1_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_pkcs1_vrfy.c b/src/rsa/rsa_i62_pkcs1_vrfy.c index 6519161..71ae5d3 100644 --- a/src/rsa/rsa_i62_pkcs1_vrfy.c +++ b/src/rsa/rsa_i62_pkcs1_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_priv.c b/src/rsa/rsa_i62_priv.c index f0da600..7f95073 100644 --- a/src/rsa/rsa_i62_priv.c +++ b/src/rsa/rsa_i62_priv.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_pss_sign.c b/src/rsa/rsa_i62_pss_sign.c index 7232f6d..ec9a1e6 100644 --- a/src/rsa/rsa_i62_pss_sign.c +++ b/src/rsa/rsa_i62_pss_sign.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_pss_vrfy.c b/src/rsa/rsa_i62_pss_vrfy.c index e726e82..62b9646 100644 --- a/src/rsa/rsa_i62_pss_vrfy.c +++ b/src/rsa/rsa_i62_pss_vrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_i62_pub.c b/src/rsa/rsa_i62_pub.c index 70cf61b..55c08f3 100644 --- a/src/rsa/rsa_i62_pub.c +++ b/src/rsa/rsa_i62_pub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/rsa/rsa_oaep_pad.c b/src/rsa/rsa_oaep_pad.c index 5327dc2..cea25b4 100644 --- a/src/rsa/rsa_oaep_pad.c +++ b/src/rsa/rsa_oaep_pad.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Hash some data. This is put as a separate function so that stack diff --git a/src/rsa/rsa_oaep_unpad.c b/src/rsa/rsa_oaep_unpad.c index 7c4be6a..1f21324 100644 --- a/src/rsa/rsa_oaep_unpad.c +++ b/src/rsa/rsa_oaep_unpad.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Hash some data and XOR the result into the provided buffer. This is put diff --git a/src/rsa/rsa_pkcs1_sig_pad.c b/src/rsa/rsa_pkcs1_sig_pad.c index 06c3bd7..ef34c3e 100644 --- a/src/rsa/rsa_pkcs1_sig_pad.c +++ b/src/rsa/rsa_pkcs1_sig_pad.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/rsa/rsa_pkcs1_sig_unpad.c b/src/rsa/rsa_pkcs1_sig_unpad.c index c8ae08f..d5abbaf 100644 --- a/src/rsa/rsa_pkcs1_sig_unpad.c +++ b/src/rsa/rsa_pkcs1_sig_unpad.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/rsa/rsa_pss_sig_pad.c b/src/rsa/rsa_pss_sig_pad.c index 13e9027..63e26da 100644 --- a/src/rsa/rsa_pss_sig_pad.c +++ b/src/rsa/rsa_pss_sig_pad.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/rsa/rsa_pss_sig_unpad.c b/src/rsa/rsa_pss_sig_unpad.c index 0c6ae99..0f33fe1 100644 --- a/src/rsa/rsa_pss_sig_unpad.c +++ b/src/rsa/rsa_pss_sig_unpad.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ uint32_t diff --git a/src/rsa/rsa_ssl_decrypt.c b/src/rsa/rsa_ssl_decrypt.c index 047eb18..c181573 100644 --- a/src/rsa/rsa_ssl_decrypt.c +++ b/src/rsa/rsa_ssl_decrypt.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_rsa.h */ uint32_t diff --git a/src/ssl/prf.c b/src/ssl/prf.c index f04a5fb..68d1bb2 100644 --- a/src/ssl/prf.c +++ b/src/ssl/prf.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/ssl/prf_md5sha1.c b/src/ssl/prf_md5sha1.c index 3212833..3dc7c59 100644 --- a/src/ssl/prf_md5sha1.c +++ b/src/ssl/prf_md5sha1.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl.h */ void diff --git a/src/ssl/prf_sha256.c b/src/ssl/prf_sha256.c index 76041de..d78ecf5 100644 --- a/src/ssl/prf_sha256.c +++ b/src/ssl/prf_sha256.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl.h */ void diff --git a/src/ssl/prf_sha384.c b/src/ssl/prf_sha384.c index c20c4e6..20042e9 100644 --- a/src/ssl/prf_sha384.c +++ b/src/ssl/prf_sha384.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl.h */ void diff --git a/src/ssl/ssl_ccert_single_ec.c b/src/ssl/ssl_ccert_single_ec.c index 93ebcde..8c2c6ad 100644 --- a/src/ssl/ssl_ccert_single_ec.c +++ b/src/ssl/ssl_ccert_single_ec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static void cc_none0(const br_ssl_client_certificate_class **pctx) @@ -69,6 +69,7 @@ cc_choose(const br_ssl_client_certificate_class **pctx, choices->hash_id = -1; choices->chain = zc->chain; choices->chain_len = zc->chain_len; + return; } } diff --git a/src/ssl/ssl_ccert_single_rsa.c b/src/ssl/ssl_ccert_single_rsa.c index 690df20..79d761a 100644 --- a/src/ssl/ssl_ccert_single_rsa.c +++ b/src/ssl/ssl_ccert_single_rsa.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static void cc_none0(const br_ssl_client_certificate_class **pctx) diff --git a/src/ssl/ssl_client.c b/src/ssl/ssl_client.c index 28c404b..f617db5 100644 --- a/src/ssl/ssl_client.c +++ b/src/ssl/ssl_client.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_client_default_rsapub.c b/src/ssl/ssl_client_default_rsapub.c index 2cdaab8..6a257da 100644 --- a/src/ssl/ssl_client_default_rsapub.c +++ b/src/ssl/ssl_client_default_rsapub.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_client_full.c b/src/ssl/ssl_client_full.c index 9814349..4024131 100644 --- a/src/ssl/ssl_client_full.c +++ b/src/ssl/ssl_client_full.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine.c b/src/ssl/ssl_engine.c index f59fe1a..b4b7d65 100644 --- a/src/ssl/ssl_engine.c +++ b/src/ssl/ssl_engine.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if 0 /* obsolete */ diff --git a/src/ssl/ssl_engine_default_aescbc.c b/src/ssl/ssl_engine_default_aescbc.c index 8c5cdb5..6ecb157 100644 --- a/src/ssl/ssl_engine_default_aescbc.c +++ b/src/ssl/ssl_engine_default_aescbc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine_default_aesccm.c b/src/ssl/ssl_engine_default_aesccm.c index 15c0a78..42f77ae 100644 --- a/src/ssl/ssl_engine_default_aesccm.c +++ b/src/ssl/ssl_engine_default_aesccm.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine_default_aesgcm.c b/src/ssl/ssl_engine_default_aesgcm.c index c44a707..34160ff 100644 --- a/src/ssl/ssl_engine_default_aesgcm.c +++ b/src/ssl/ssl_engine_default_aesgcm.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine_default_chapol.c b/src/ssl/ssl_engine_default_chapol.c index 47a0c98..105952a 100644 --- a/src/ssl/ssl_engine_default_chapol.c +++ b/src/ssl/ssl_engine_default_chapol.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine_default_descbc.c b/src/ssl/ssl_engine_default_descbc.c index 0253cb2..377f81f 100644 --- a/src/ssl/ssl_engine_default_descbc.c +++ b/src/ssl/ssl_engine_default_descbc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine_default_ec.c b/src/ssl/ssl_engine_default_ec.c index 0213ae6..ef68d9c 100644 --- a/src/ssl/ssl_engine_default_ec.c +++ b/src/ssl/ssl_engine_default_ec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine_default_ecdsa.c b/src/ssl/ssl_engine_default_ecdsa.c index 1304002..e741ab3 100644 --- a/src/ssl/ssl_engine_default_ecdsa.c +++ b/src/ssl/ssl_engine_default_ecdsa.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_engine_default_rsavrfy.c b/src/ssl/ssl_engine_default_rsavrfy.c index ad0628a..1cca350 100644 --- a/src/ssl/ssl_engine_default_rsavrfy.c +++ b/src/ssl/ssl_engine_default_rsavrfy.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_hashes.c b/src/ssl/ssl_hashes.c index e10a980..354cc38 100644 --- a/src/ssl/ssl_hashes.c +++ b/src/ssl/ssl_hashes.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ int @@ -42,5 +42,6 @@ br_ssl_choose_hash(unsigned bf) return x; } } + return 0; } diff --git a/src/ssl/ssl_hs_client.c b/src/ssl/ssl_hs_client.c index de36165..ac26d12 100644 --- a/src/ssl/ssl_hs_client.c +++ b/src/ssl/ssl_hs_client.c @@ -1,7 +1,6 @@ /* Automatically generated code; do not modify directly. */ -#include -#include +#include typedef struct { uint32_t *dp; @@ -67,10 +66,9 @@ void br_ssl_hs_client_run(void *t0ctx); -#include -#include +#include -#include "inner.h" +#include "../inner.h" /* * This macro evaluates to a pointer to the current engine context. diff --git a/src/ssl/ssl_hs_common.t0 b/src/ssl/ssl_hs_common.t0 index 4674891..bb78932 100644 --- a/src/ssl/ssl_hs_common.t0 +++ b/src/ssl/ssl_hs_common.t0 @@ -29,7 +29,7 @@ preamble { #include #include -#include "inner.h" +#include "../inner.h" /* * This macro evaluates to a pointer to the current engine context. diff --git a/src/ssl/ssl_hs_server.c b/src/ssl/ssl_hs_server.c index 5f8cae7..b90e053 100644 --- a/src/ssl/ssl_hs_server.c +++ b/src/ssl/ssl_hs_server.c @@ -1,7 +1,6 @@ /* Automatically generated code; do not modify directly. */ -#include -#include +#include typedef struct { uint32_t *dp; @@ -67,10 +66,9 @@ void br_ssl_hs_server_run(void *t0ctx); -#include -#include +#include -#include "inner.h" +#include "../inner.h" /* * This macro evaluates to a pointer to the current engine context. diff --git a/src/ssl/ssl_io.c b/src/ssl/ssl_io.c index 1952615..35d9a3f 100644 --- a/src/ssl/ssl_io.c +++ b/src/ssl/ssl_io.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void @@ -121,13 +121,14 @@ run_until(br_sslio_context *ctx, unsigned target) buf = br_ssl_engine_recvrec_buf(ctx->engine, &len); rlen = ctx->low_read(ctx->read_context, buf, len); - if (rlen < 0) { - br_ssl_engine_fail(ctx->engine, BR_ERR_IO); - return -1; - } - if (rlen > 0) { - br_ssl_engine_recvrec_ack(ctx->engine, rlen); + if (rlen <= 0) + { + if (rlen != -ERESTARTSYS && rlen != -EAGAIN && rlen != -EWOULDBLOCK) + br_ssl_engine_fail(ctx->engine, BR_ERR_IO); + return rlen; } + + br_ssl_engine_recvrec_ack(ctx->engine, rlen); continue; } @@ -152,8 +153,13 @@ br_sslio_read(br_sslio_context *ctx, void *dst, size_t len) if (len == 0) { return 0; } - if (run_until(ctx, BR_SSL_RECVAPP) < 0) { - return -1; + int ret = run_until(ctx, BR_SSL_RECVAPP); + if (ret < 0) { + unsigned state = br_ssl_engine_current_state(ctx->engine); + if (state & BR_SSL_CLOSED) { + return 0; + } + return ret; } buf = br_ssl_engine_recvapp_buf(ctx->engine, &alen); if (alen > len) { diff --git a/src/ssl/ssl_keyexport.c b/src/ssl/ssl_keyexport.c index 58e6dc3..adb215c 100644 --- a/src/ssl/ssl_keyexport.c +++ b/src/ssl/ssl_keyexport.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Supported cipher suites that use SHA-384 for the PRF when selected diff --git a/src/ssl/ssl_lru.c b/src/ssl/ssl_lru.c index 4c71011..61603cf 100644 --- a/src/ssl/ssl_lru.c +++ b/src/ssl/ssl_lru.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Each entry consists in a fixed number of bytes. Entries are concatenated diff --git a/src/ssl/ssl_rec_cbc.c b/src/ssl/ssl_rec_cbc.c index c38cbfd..2a914a3 100644 --- a/src/ssl/ssl_rec_cbc.c +++ b/src/ssl/ssl_rec_cbc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static void in_cbc_init(br_sslrec_in_cbc_context *cc, diff --git a/src/ssl/ssl_rec_ccm.c b/src/ssl/ssl_rec_ccm.c index 92c3295..3fab804 100644 --- a/src/ssl/ssl_rec_ccm.c +++ b/src/ssl/ssl_rec_ccm.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * CCM initialisation. This does everything except setting the vtable, @@ -38,6 +38,7 @@ gen_ccm_init(br_sslrec_ccm_context *cc, cc->seq = 0; bc_impl->init(&cc->bc.vtable, key, key_len); memcpy(cc->iv, iv, sizeof cc->iv); + memcpy(cc->key, key, key_len); cc->tag_len = tag_len; } diff --git a/src/ssl/ssl_rec_chapol.c b/src/ssl/ssl_rec_chapol.c index 73b3c78..860e633 100644 --- a/src/ssl/ssl_rec_chapol.c +++ b/src/ssl/ssl_rec_chapol.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static void gen_chapol_init(br_sslrec_chapol_context *cc, diff --git a/src/ssl/ssl_rec_gcm.c b/src/ssl/ssl_rec_gcm.c index 70df277..0404e0e 100644 --- a/src/ssl/ssl_rec_gcm.c +++ b/src/ssl/ssl_rec_gcm.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * GCM initialisation. This does everything except setting the vtable, @@ -42,6 +42,7 @@ gen_gcm_init(br_sslrec_gcm_context *cc, bc_impl->init(&cc->bc.vtable, key, key_len); cc->gh = gh_impl; memcpy(cc->iv, iv, sizeof cc->iv); + memcpy(cc->key, key, key_len); memset(cc->h, 0, sizeof cc->h); memset(tmp, 0, sizeof tmp); bc_impl->run(&cc->bc.vtable, tmp, 0, cc->h, sizeof cc->h); diff --git a/src/ssl/ssl_scert_single_ec.c b/src/ssl/ssl_scert_single_ec.c index ce8d753..30a72ba 100644 --- a/src/ssl/ssl_scert_single_ec.c +++ b/src/ssl/ssl_scert_single_ec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static int se_choose(const br_ssl_server_policy_class **pctx, diff --git a/src/ssl/ssl_scert_single_rsa.c b/src/ssl/ssl_scert_single_rsa.c index b2c7767..405f783 100644 --- a/src/ssl/ssl_scert_single_rsa.c +++ b/src/ssl/ssl_scert_single_rsa.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static int sr_choose(const br_ssl_server_policy_class **pctx, diff --git a/src/ssl/ssl_server.c b/src/ssl/ssl_server.c index 5578b63..278a057 100644 --- a/src/ssl/ssl_server.c +++ b/src/ssl/ssl_server.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_full_ec.c b/src/ssl/ssl_server_full_ec.c index bccc093..586b199 100644 --- a/src/ssl/ssl_server_full_ec.c +++ b/src/ssl/ssl_server_full_ec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_full_rsa.c b/src/ssl/ssl_server_full_rsa.c index d67c076..e6a3a91 100644 --- a/src/ssl/ssl_server_full_rsa.c +++ b/src/ssl/ssl_server_full_rsa.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_mine2c.c b/src/ssl/ssl_server_mine2c.c index bf61b56..14d212d 100644 --- a/src/ssl/ssl_server_mine2c.c +++ b/src/ssl/ssl_server_mine2c.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_mine2g.c b/src/ssl/ssl_server_mine2g.c index 80fa5b1..460c2b7 100644 --- a/src/ssl/ssl_server_mine2g.c +++ b/src/ssl/ssl_server_mine2g.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_minf2c.c b/src/ssl/ssl_server_minf2c.c index 3f44236..3e6a442 100644 --- a/src/ssl/ssl_server_minf2c.c +++ b/src/ssl/ssl_server_minf2c.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_minf2g.c b/src/ssl/ssl_server_minf2g.c index 8613de1..db4f86b 100644 --- a/src/ssl/ssl_server_minf2g.c +++ b/src/ssl/ssl_server_minf2g.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_minr2g.c b/src/ssl/ssl_server_minr2g.c index 83c238b..3095896 100644 --- a/src/ssl/ssl_server_minr2g.c +++ b/src/ssl/ssl_server_minr2g.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_minu2g.c b/src/ssl/ssl_server_minu2g.c index 6721384..bb5bf35 100644 --- a/src/ssl/ssl_server_minu2g.c +++ b/src/ssl/ssl_server_minu2g.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/ssl/ssl_server_minv2g.c b/src/ssl/ssl_server_minv2g.c index 194e654..88583ce 100644 --- a/src/ssl/ssl_server_minv2g.c +++ b/src/ssl/ssl_server_minv2g.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_ssl.h */ void diff --git a/src/symcipher/aes_big_cbcdec.c b/src/symcipher/aes_big_cbcdec.c index d969a3b..a5574e2 100644 --- a/src/symcipher/aes_big_cbcdec.c +++ b/src/symcipher/aes_big_cbcdec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_big_cbcenc.c b/src/symcipher/aes_big_cbcenc.c index 265e53b..c20f622 100644 --- a/src/symcipher/aes_big_cbcenc.c +++ b/src/symcipher/aes_big_cbcenc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_big_ctr.c b/src/symcipher/aes_big_ctr.c index 18fbb84..f69eac4 100644 --- a/src/symcipher/aes_big_ctr.c +++ b/src/symcipher/aes_big_ctr.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_big_ctrcbc.c b/src/symcipher/aes_big_ctrcbc.c index d45ca76..997bd4e 100644 --- a/src/symcipher/aes_big_ctrcbc.c +++ b/src/symcipher/aes_big_ctrcbc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_big_dec.c b/src/symcipher/aes_big_dec.c index a5d0e3c..3c76e8a 100644 --- a/src/symcipher/aes_big_dec.c +++ b/src/symcipher/aes_big_dec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Inverse S-box (used in key schedule for decryption). diff --git a/src/symcipher/aes_big_enc.c b/src/symcipher/aes_big_enc.c index bbabb9a..c33bdb9 100644 --- a/src/symcipher/aes_big_enc.c +++ b/src/symcipher/aes_big_enc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define S br_aes_S diff --git a/src/symcipher/aes_common.c b/src/symcipher/aes_common.c index 72c64fb..ee616d1 100644 --- a/src/symcipher/aes_common.c +++ b/src/symcipher/aes_common.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static const uint32_t Rcon[] = { 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, diff --git a/src/symcipher/aes_ct.c b/src/symcipher/aes_ct.c index 66776d9..029465f 100644 --- a/src/symcipher/aes_ct.c +++ b/src/symcipher/aes_ct.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/symcipher/aes_ct64.c b/src/symcipher/aes_ct64.c index 1523811..be673df 100644 --- a/src/symcipher/aes_ct64.c +++ b/src/symcipher/aes_ct64.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/symcipher/aes_ct64_cbcdec.c b/src/symcipher/aes_ct64_cbcdec.c index 5a7360b..9d614c3 100644 --- a/src/symcipher/aes_ct64_cbcdec.c +++ b/src/symcipher/aes_ct64_cbcdec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct64_cbcenc.c b/src/symcipher/aes_ct64_cbcenc.c index 6cb9dec..fb7ee5d 100644 --- a/src/symcipher/aes_ct64_cbcenc.c +++ b/src/symcipher/aes_ct64_cbcenc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct64_ctr.c b/src/symcipher/aes_ct64_ctr.c index 1275873..cf2b197 100644 --- a/src/symcipher/aes_ct64_ctr.c +++ b/src/symcipher/aes_ct64_ctr.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct64_ctrcbc.c b/src/symcipher/aes_ct64_ctrcbc.c index 21bb8ef..69923a8 100644 --- a/src/symcipher/aes_ct64_ctrcbc.c +++ b/src/symcipher/aes_ct64_ctrcbc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct64_dec.c b/src/symcipher/aes_ct64_dec.c index ab00e09..fe76b95 100644 --- a/src/symcipher/aes_ct64_dec.c +++ b/src/symcipher/aes_ct64_dec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/symcipher/aes_ct64_enc.c b/src/symcipher/aes_ct64_enc.c index 78631ce..8f13b73 100644 --- a/src/symcipher/aes_ct64_enc.c +++ b/src/symcipher/aes_ct64_enc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static inline void add_round_key(uint64_t *q, const uint64_t *sk) diff --git a/src/symcipher/aes_ct_cbcdec.c b/src/symcipher/aes_ct_cbcdec.c index 522645a..905b5cc 100644 --- a/src/symcipher/aes_ct_cbcdec.c +++ b/src/symcipher/aes_ct_cbcdec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct_cbcenc.c b/src/symcipher/aes_ct_cbcenc.c index cb85977..ca4f40f 100644 --- a/src/symcipher/aes_ct_cbcenc.c +++ b/src/symcipher/aes_ct_cbcenc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct_ctr.c b/src/symcipher/aes_ct_ctr.c index f407689..1433368 100644 --- a/src/symcipher/aes_ct_ctr.c +++ b/src/symcipher/aes_ct_ctr.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct_ctrcbc.c b/src/symcipher/aes_ct_ctrcbc.c index 8ae9fc7..36f10e1 100644 --- a/src/symcipher/aes_ct_ctrcbc.c +++ b/src/symcipher/aes_ct_ctrcbc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_ct_dec.c b/src/symcipher/aes_ct_dec.c index 7f32d2b..fcd8d26 100644 --- a/src/symcipher/aes_ct_dec.c +++ b/src/symcipher/aes_ct_dec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/symcipher/aes_ct_enc.c b/src/symcipher/aes_ct_enc.c index 089bf35..7d8abc0 100644 --- a/src/symcipher/aes_ct_enc.c +++ b/src/symcipher/aes_ct_enc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" static inline void add_round_key(uint32_t *q, const uint32_t *sk) diff --git a/src/symcipher/aes_pwr8.c b/src/symcipher/aes_pwr8.c index b2c63c3..48dcbdd 100644 --- a/src/symcipher/aes_pwr8.c +++ b/src/symcipher/aes_pwr8.c @@ -23,7 +23,7 @@ */ #define BR_POWER_ASM_MACROS 1 -#include "inner.h" +#include "../inner.h" /* * This code contains the AES key schedule implementation using the diff --git a/src/symcipher/aes_pwr8_cbcdec.c b/src/symcipher/aes_pwr8_cbcdec.c index e535ba6..0745981 100644 --- a/src/symcipher/aes_pwr8_cbcdec.c +++ b/src/symcipher/aes_pwr8_cbcdec.c @@ -23,7 +23,7 @@ */ #define BR_POWER_ASM_MACROS 1 -#include "inner.h" +#include "../inner.h" #if BR_POWER8 diff --git a/src/symcipher/aes_pwr8_cbcenc.c b/src/symcipher/aes_pwr8_cbcenc.c index 00f8eca..2c762fd 100644 --- a/src/symcipher/aes_pwr8_cbcenc.c +++ b/src/symcipher/aes_pwr8_cbcenc.c @@ -23,7 +23,7 @@ */ #define BR_POWER_ASM_MACROS 1 -#include "inner.h" +#include "../inner.h" #if BR_POWER8 diff --git a/src/symcipher/aes_pwr8_ctr.c b/src/symcipher/aes_pwr8_ctr.c index f5d20c0..b37fc9b 100644 --- a/src/symcipher/aes_pwr8_ctr.c +++ b/src/symcipher/aes_pwr8_ctr.c @@ -23,7 +23,7 @@ */ #define BR_POWER_ASM_MACROS 1 -#include "inner.h" +#include "../inner.h" #if BR_POWER8 diff --git a/src/symcipher/aes_pwr8_ctrcbc.c b/src/symcipher/aes_pwr8_ctrcbc.c index a67d30b..ae3da31 100644 --- a/src/symcipher/aes_pwr8_ctrcbc.c +++ b/src/symcipher/aes_pwr8_ctrcbc.c @@ -23,7 +23,7 @@ */ #define BR_POWER_ASM_MACROS 1 -#include "inner.h" +#include "../inner.h" #if BR_POWER8 diff --git a/src/symcipher/aes_small_cbcdec.c b/src/symcipher/aes_small_cbcdec.c index 8567244..bb2a76f 100644 --- a/src/symcipher/aes_small_cbcdec.c +++ b/src/symcipher/aes_small_cbcdec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_small_cbcenc.c b/src/symcipher/aes_small_cbcenc.c index 0dc2910..f46a7bb 100644 --- a/src/symcipher/aes_small_cbcenc.c +++ b/src/symcipher/aes_small_cbcenc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_small_ctr.c b/src/symcipher/aes_small_ctr.c index d5d371c..f0c6cfb 100644 --- a/src/symcipher/aes_small_ctr.c +++ b/src/symcipher/aes_small_ctr.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_small_ctrcbc.c b/src/symcipher/aes_small_ctrcbc.c index 2d6ba32..cb4b8c2 100644 --- a/src/symcipher/aes_small_ctrcbc.c +++ b/src/symcipher/aes_small_ctrcbc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/aes_small_dec.c b/src/symcipher/aes_small_dec.c index 59dca8e..2efdb88 100644 --- a/src/symcipher/aes_small_dec.c +++ b/src/symcipher/aes_small_dec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Inverse S-box. diff --git a/src/symcipher/aes_small_enc.c b/src/symcipher/aes_small_enc.c index 29f48a8..0e47f01 100644 --- a/src/symcipher/aes_small_enc.c +++ b/src/symcipher/aes_small_enc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #define S br_aes_S diff --git a/src/symcipher/aes_x86ni.c b/src/symcipher/aes_x86ni.c index d5408f1..20d5066 100644 --- a/src/symcipher/aes_x86ni.c +++ b/src/symcipher/aes_x86ni.c @@ -23,7 +23,7 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" /* * This code contains the AES key schedule implementation using the diff --git a/src/symcipher/aes_x86ni_cbcdec.c b/src/symcipher/aes_x86ni_cbcdec.c index 862b1b5..b116491 100644 --- a/src/symcipher/aes_x86ni_cbcdec.c +++ b/src/symcipher/aes_x86ni_cbcdec.c @@ -23,7 +23,7 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" #if BR_AES_X86NI diff --git a/src/symcipher/aes_x86ni_cbcenc.c b/src/symcipher/aes_x86ni_cbcenc.c index 85feecd..f9f8f21 100644 --- a/src/symcipher/aes_x86ni_cbcenc.c +++ b/src/symcipher/aes_x86ni_cbcenc.c @@ -23,7 +23,7 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" #if BR_AES_X86NI diff --git a/src/symcipher/aes_x86ni_ctr.c b/src/symcipher/aes_x86ni_ctr.c index 1cddd60..71fab2a 100644 --- a/src/symcipher/aes_x86ni_ctr.c +++ b/src/symcipher/aes_x86ni_ctr.c @@ -23,7 +23,7 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" #if BR_AES_X86NI diff --git a/src/symcipher/aes_x86ni_ctrcbc.c b/src/symcipher/aes_x86ni_ctrcbc.c index f57fead..fb73ae7 100644 --- a/src/symcipher/aes_x86ni_ctrcbc.c +++ b/src/symcipher/aes_x86ni_ctrcbc.c @@ -23,7 +23,7 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" #if BR_AES_X86NI diff --git a/src/symcipher/chacha20_ct.c b/src/symcipher/chacha20_ct.c index 9961eb1..b9720a0 100644 --- a/src/symcipher/chacha20_ct.c +++ b/src/symcipher/chacha20_ct.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ uint32_t diff --git a/src/symcipher/chacha20_sse2.c b/src/symcipher/chacha20_sse2.c index 92b4a4a..11eab58 100644 --- a/src/symcipher/chacha20_sse2.c +++ b/src/symcipher/chacha20_sse2.c @@ -23,7 +23,7 @@ */ #define BR_ENABLE_INTRINSICS 1 -#include "inner.h" +#include "../inner.h" #if BR_SSE2 diff --git a/src/symcipher/des_ct.c b/src/symcipher/des_ct.c index 581c0ab..c0d3c88 100644 --- a/src/symcipher/des_ct.c +++ b/src/symcipher/des_ct.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * During key schedule, we need to apply bit extraction PC-2 then permute diff --git a/src/symcipher/des_ct_cbcdec.c b/src/symcipher/des_ct_cbcdec.c index d208a3d..8199a27 100644 --- a/src/symcipher/des_ct_cbcdec.c +++ b/src/symcipher/des_ct_cbcdec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/des_ct_cbcenc.c b/src/symcipher/des_ct_cbcenc.c index 4b3610e..4692dfe 100644 --- a/src/symcipher/des_ct_cbcenc.c +++ b/src/symcipher/des_ct_cbcenc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/des_support.c b/src/symcipher/des_support.c index 37f6db3..ac8046f 100644 --- a/src/symcipher/des_support.c +++ b/src/symcipher/des_support.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ void diff --git a/src/symcipher/des_tab.c b/src/symcipher/des_tab.c index 3f8e4f9..26116b8 100644 --- a/src/symcipher/des_tab.c +++ b/src/symcipher/des_tab.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * PC2left[x] tells where bit x goes when applying PC-2. 'x' is a bit diff --git a/src/symcipher/des_tab_cbcdec.c b/src/symcipher/des_tab_cbcdec.c index e7eabe9..127b36a 100644 --- a/src/symcipher/des_tab_cbcdec.c +++ b/src/symcipher/des_tab_cbcdec.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/des_tab_cbcenc.c b/src/symcipher/des_tab_cbcenc.c index 3a45ba3..662197c 100644 --- a/src/symcipher/des_tab_cbcenc.c +++ b/src/symcipher/des_tab_cbcenc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_block.h */ void diff --git a/src/symcipher/poly1305_ctmul.c b/src/symcipher/poly1305_ctmul.c index 150e610..ccf275d 100644 --- a/src/symcipher/poly1305_ctmul.c +++ b/src/symcipher/poly1305_ctmul.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Perform the inner processing of blocks for Poly1305. The accumulator diff --git a/src/symcipher/poly1305_ctmul32.c b/src/symcipher/poly1305_ctmul32.c index 15d9635..d230fd3 100644 --- a/src/symcipher/poly1305_ctmul32.c +++ b/src/symcipher/poly1305_ctmul32.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * Perform the inner processing of blocks for Poly1305. diff --git a/src/symcipher/poly1305_ctmulq.c b/src/symcipher/poly1305_ctmulq.c index b00683a..51989a1 100644 --- a/src/symcipher/poly1305_ctmulq.c +++ b/src/symcipher/poly1305_ctmulq.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" #if BR_INT128 || BR_UMUL128 diff --git a/src/symcipher/poly1305_i15.c b/src/symcipher/poly1305_i15.c index 6f89212..c87f3e1 100644 --- a/src/symcipher/poly1305_i15.c +++ b/src/symcipher/poly1305_i15.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* * This is a "reference" implementation of Poly1305 that uses the diff --git a/src/x509/asn1.t0 b/src/x509/asn1.t0 index c329514..760b503 100644 --- a/src/x509/asn1.t0 +++ b/src/x509/asn1.t0 @@ -45,7 +45,7 @@ preamble { -#include "inner.h" +#include "../inner.h" } diff --git a/src/x509/asn1enc.c b/src/x509/asn1enc.c index 7a74963..4e9502d 100644 --- a/src/x509/asn1enc.c +++ b/src/x509/asn1enc.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ br_asn1_uint diff --git a/src/x509/encode_ec_pk8der.c b/src/x509/encode_ec_pk8der.c index 53717ce..0201d81 100644 --- a/src/x509/encode_ec_pk8der.c +++ b/src/x509/encode_ec_pk8der.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_x509.h */ size_t diff --git a/src/x509/encode_ec_rawder.c b/src/x509/encode_ec_rawder.c index 5985909..e53e1cf 100644 --- a/src/x509/encode_ec_rawder.c +++ b/src/x509/encode_ec_rawder.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see inner.h */ const unsigned char * diff --git a/src/x509/encode_rsa_pk8der.c b/src/x509/encode_rsa_pk8der.c index c053503..74d6a41 100644 --- a/src/x509/encode_rsa_pk8der.c +++ b/src/x509/encode_rsa_pk8der.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_x509.h */ size_t diff --git a/src/x509/encode_rsa_rawder.c b/src/x509/encode_rsa_rawder.c index 1a8052b..5509bd1 100644 --- a/src/x509/encode_rsa_rawder.c +++ b/src/x509/encode_rsa_rawder.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_x509.h */ size_t diff --git a/src/x509/skey_decoder.c b/src/x509/skey_decoder.c index 9e285d7..5cca80d 100644 --- a/src/x509/skey_decoder.c +++ b/src/x509/skey_decoder.c @@ -1,7 +1,6 @@ /* Automatically generated code; do not modify directly. */ -#include -#include +#include typedef struct { uint32_t *dp; @@ -67,13 +66,13 @@ void br_skey_decoder_run(void *t0ctx); -#include "inner.h" +#include "../inner.h" -#include "inner.h" +#include "../inner.h" #define CTX ((br_skey_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_skey_decoder_context, cpu))) #define CONTEXT_NAME br_skey_decoder_context diff --git a/src/x509/skey_decoder.t0 b/src/x509/skey_decoder.t0 index f00e614..8360609 100644 --- a/src/x509/skey_decoder.t0 +++ b/src/x509/skey_decoder.t0 @@ -22,7 +22,7 @@ preamble { -#include "inner.h" +#include "../inner.h" #define CTX ((br_skey_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_skey_decoder_context, cpu))) #define CONTEXT_NAME br_skey_decoder_context diff --git a/src/x509/x509_decoder.c b/src/x509/x509_decoder.c index 8dd970f..88de4c1 100644 --- a/src/x509/x509_decoder.c +++ b/src/x509/x509_decoder.c @@ -1,7 +1,6 @@ /* Automatically generated code; do not modify directly. */ -#include -#include +#include typedef struct { uint32_t *dp; @@ -67,13 +66,13 @@ void br_x509_decoder_run(void *t0ctx); -#include "inner.h" +#include "../inner.h" -#include "inner.h" +#include "../inner.h" #define CTX ((br_x509_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_x509_decoder_context, cpu))) #define CONTEXT_NAME br_x509_decoder_context diff --git a/src/x509/x509_decoder.t0 b/src/x509/x509_decoder.t0 index 0bf276f..e1f0b7c 100644 --- a/src/x509/x509_decoder.t0 +++ b/src/x509/x509_decoder.t0 @@ -22,7 +22,7 @@ preamble { -#include "inner.h" +#include "../inner.h" #define CTX ((br_x509_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_x509_decoder_context, cpu))) #define CONTEXT_NAME br_x509_decoder_context diff --git a/src/x509/x509_knownkey.c b/src/x509/x509_knownkey.c index 7674f3f..dff5e2f 100644 --- a/src/x509/x509_knownkey.c +++ b/src/x509/x509_knownkey.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_x509.h */ void diff --git a/src/x509/x509_minimal.c b/src/x509/x509_minimal.c index 04f149b..29fe847 100644 --- a/src/x509/x509_minimal.c +++ b/src/x509/x509_minimal.c @@ -1,7 +1,6 @@ /* Automatically generated code; do not modify directly. */ -#include -#include +#include typedef struct { uint32_t *dp; @@ -67,13 +66,13 @@ void br_x509_minimal_run(void *t0ctx); -#include "inner.h" +#include "../inner.h" -#include "inner.h" +#include "../inner.h" /* * Implementation Notes @@ -201,7 +200,7 @@ void br_x509_minimal_run(void *t0ctx); */ #if BR_USE_UNIX_TIME -#include +#include #endif #if BR_USE_WIN32_TIME @@ -1217,7 +1216,9 @@ br_x509_minimal_run(void *t0ctx) uint32_t vs = CTX->seconds; if (vd == 0 && vs == 0) { #if BR_USE_UNIX_TIME - time_t x = time(NULL); + struct timespec64 ts; + ktime_get_real_ts64(&ts); + time64_t x = ts.tv_sec; vd = (uint32_t)(x / 86400) + 719528; vs = (uint32_t)(x % 86400); diff --git a/src/x509/x509_minimal.t0 b/src/x509/x509_minimal.t0 index 80a3701..9481bdf 100644 --- a/src/x509/x509_minimal.t0 +++ b/src/x509/x509_minimal.t0 @@ -22,7 +22,7 @@ preamble { -#include "inner.h" +#include "../inner.h" /* * Implementation Notes diff --git a/src/x509/x509_minimal_full.c b/src/x509/x509_minimal_full.c index 2b54426..393be3e 100644 --- a/src/x509/x509_minimal_full.c +++ b/src/x509/x509_minimal_full.c @@ -22,7 +22,7 @@ * SOFTWARE. */ -#include "inner.h" +#include "../inner.h" /* see bearssl_x509.h */ void