chore: replace aws-lc by boringssl

This commit is contained in:
Richard Ramos
2025-10-15 00:19:28 -04:00
parent a4d956f952
commit 47bb259faf
13 changed files with 31207 additions and 38414 deletions

View File

@@ -54,7 +54,7 @@ jobs:
run:
shell: ${{ matrix.shell }}
name: '${{ matrix.platform.os }}-${{ matrix.platform.cpu }} (Nim ${{ matrix.nim.ref }})'
name: "${{ matrix.platform.os }}-${{ matrix.platform.cpu }} (Nim ${{ matrix.nim.ref }})"
runs-on: ${{ matrix.builder }}
steps:
- name: Checkout
@@ -85,7 +85,7 @@ jobs:
nimble install
- name: Use gcc 14
if : ${{ matrix.platform.os == 'linux-gcc-14'}}
if: ${{ matrix.platform.os == 'linux-gcc-14'}}
run: |
# Add GCC-14 to alternatives
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14
@@ -94,7 +94,7 @@ jobs:
sudo update-alternatives --set gcc /usr/bin/gcc-14
- name: Install deps (windows)
if : ${{ matrix.platform.os == 'windows'}}
if: ${{ matrix.platform.os == 'windows'}}
run: |
pacman -S --noconfirm base-devel gcc

6
.gitmodules vendored
View File

@@ -1,6 +1,6 @@
[submodule "libs/ngtcp2"]
path = libs/ngtcp2
url = https://github.com/ngtcp2/ngtcp2
[submodule "libs/aws-lc"]
path = libs/aws-lc
url = https://github.com/aws/aws-lc
[submodule "libs/boringssl"]
path = libs/boringssl
url = https://boringssl.googlesource.com/boringssl

352
awslc.nim
View File

@@ -1,352 +0,0 @@
# libcrypto + libssl sources without cmake, no-asm, no fips, no tests, tools
# TODO: look into use assembly files for perf
import ./jitterentropy
# ----- toolchain + includes -----
{.passc: "-DBORINGSSL_IMPLEMENTATION -DOPENSSL_NO_ASM -DS2N_BN_HIDE_SYMBOLS".}
{.localPassC: "-ffunction-sections -fdata-sections".}
{.passc: "-I./libs/aws-lc/include -I./libs/aws-lc".}
{.localPassC: "-O3".}
when not defined(release):
{.localPassC: "-DNDEBUG".}
# link stdc++/pthread as needed
when defined(macosx):
{.localPassC: "-lc++".}
elif defined(linux):
{.localPassC: "-D_XOPEN_SOURCE=700".}
{.localPassC: "-lstdc++ -pthread".}
# ----- generated sources -----
{.compile: "./libs/aws-lc/generated-src/err_data.c".}
# ----- crypto -----
# asn1
{.compile: "./libs/aws-lc/crypto/asn1/a_bitstr.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_bool.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_d2i_fp.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_dup.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_gentm.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_i2d_fp.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_int.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_mbstr.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_object.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_octet.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_strex.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_strnid.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_time.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_type.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_utctm.c".}
{.compile: "./libs/aws-lc/crypto/asn1/a_utf8.c".}
{.compile: "./libs/aws-lc/crypto/asn1/asn1_lib.c".}
{.compile: "./libs/aws-lc/crypto/asn1/asn1_par.c".}
{.compile: "./libs/aws-lc/crypto/asn1/asn_pack.c".}
{.compile: "./libs/aws-lc/crypto/asn1/f_int.c".}
{.compile: "./libs/aws-lc/crypto/asn1/f_string.c".}
{.compile: "./libs/aws-lc/crypto/asn1/tasn_dec.c".}
{.compile: "./libs/aws-lc/crypto/asn1/tasn_enc.c".}
{.compile: "./libs/aws-lc/crypto/asn1/tasn_fre.c".}
{.compile: "./libs/aws-lc/crypto/asn1/tasn_new.c".}
{.compile: "./libs/aws-lc/crypto/asn1/tasn_typ.c".}
{.compile: "./libs/aws-lc/crypto/asn1/tasn_utl.c".}
{.compile: "./libs/aws-lc/crypto/asn1/posix_time.c".}
# fips
{.compile: "./libs/aws-lc/crypto/fipsmodule/bcm.c".}
{.compile: "./libs/aws-lc/crypto/fipsmodule/fips_shared_support.c".}
{.compile: "./libs/aws-lc/crypto/fipsmodule/cpucap/cpucap.c".}
# base64/bio/etc
{.compile: "./libs/aws-lc/crypto/base64/base64.c".}
{.compile: "./libs/aws-lc/crypto/bio/bio.c".}
{.compile: "./libs/aws-lc/crypto/bio/bio_addr.c".}
{.compile: "./libs/aws-lc/crypto/bio/bio_mem.c".}
{.compile: "./libs/aws-lc/crypto/bio/connect.c".}
{.compile: "./libs/aws-lc/crypto/bio/dgram.c".}
{.compile: "./libs/aws-lc/crypto/bio/errno.c".}
{.compile: "./libs/aws-lc/crypto/bio/fd.c".}
{.compile: "./libs/aws-lc/crypto/bio/file.c".}
{.compile: "./libs/aws-lc/crypto/bio/hexdump.c".}
{.compile: "./libs/aws-lc/crypto/bio/md.c".}
{.compile: "./libs/aws-lc/crypto/bio/pair.c".}
{.compile: "./libs/aws-lc/crypto/bio/printf.c".}
{.compile: "./libs/aws-lc/crypto/bio/socket.c".}
{.compile: "./libs/aws-lc/crypto/bio/socket_helper.c".}
# misc core
{.compile: "./libs/aws-lc/crypto/blake2/blake2.c".}
{.compile: "./libs/aws-lc/crypto/bn_extra/bn_asn1.c".}
{.compile: "./libs/aws-lc/crypto/bn_extra/convert.c".}
{.compile: "./libs/aws-lc/crypto/buf/buf.c".}
{.compile: "./libs/aws-lc/crypto/bytestring/asn1_compat.c".}
{.compile: "./libs/aws-lc/crypto/bytestring/ber.c".}
{.compile: "./libs/aws-lc/crypto/bytestring/cbb.c".}
{.compile: "./libs/aws-lc/crypto/bytestring/cbs.c".}
{.compile: "./libs/aws-lc/crypto/bytestring/unicode.c".}
{.compile: "./libs/aws-lc/crypto/chacha/chacha.c".}
# cipher extra
{.compile: "./libs/aws-lc/crypto/cipher_extra/cipher_extra.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/derive_key.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_aesctrhmac.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_aesgcmsiv.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_chacha20poly1305.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_aes_cbc_hmac_sha1.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_aes_cbc_hmac_sha256.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_des.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_null.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_rc2.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_rc4.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/e_tls.c".}
{.compile: "./libs/aws-lc/crypto/cipher_extra/tls_cbc.c".}
# conf/console/core
{.compile: "./libs/aws-lc/crypto/conf/conf.c".}
{.compile: "./libs/aws-lc/crypto/console/console.c".}
{.compile: "./libs/aws-lc/crypto/crypto.c".}
{.compile: "./libs/aws-lc/crypto/des/des.c".}
# dh/digest/dsa/ec extras
{.compile: "./libs/aws-lc/crypto/dh_extra/params.c".}
{.compile: "./libs/aws-lc/crypto/dh_extra/dh_asn1.c".}
{.compile: "./libs/aws-lc/crypto/digest_extra/digest_extra.c".}
{.compile: "./libs/aws-lc/crypto/dsa/dsa.c".}
{.compile: "./libs/aws-lc/crypto/dsa/dsa_asn1.c".}
{.compile: "./libs/aws-lc/crypto/ecdh_extra/ecdh_extra.c".}
{.compile: "./libs/aws-lc/crypto/ecdsa_extra/ecdsa_asn1.c".}
{.compile: "./libs/aws-lc/crypto/ec_extra/ec_asn1.c".}
{.compile: "./libs/aws-lc/crypto/ec_extra/ec_derive.c".}
{.compile: "./libs/aws-lc/crypto/ec_extra/hash_to_curve.c".}
# err/engine
{.compile: "./libs/aws-lc/crypto/err/err.c".}
{.compile: "./libs/aws-lc/crypto/engine/engine.c".}
# evp extras
{.compile: "./libs/aws-lc/crypto/evp_extra/evp_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_dh.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_dh_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_dsa.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_dsa_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_ec_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_ed25519_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_hmac_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_kem_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_pqdsa_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_rsa_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_x25519.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_x25519_asn1.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/p_methods.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/print.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/scrypt.c".}
{.compile: "./libs/aws-lc/crypto/evp_extra/sign.c".}
# misc subsystems
{.compile: "./libs/aws-lc/crypto/ex_data.c".}
{.compile: "./libs/aws-lc/crypto/hpke/hpke.c".}
{.compile: "./libs/aws-lc/crypto/hrss/hrss.c".}
{.compile: "./libs/aws-lc/crypto/kyber/kyber512r3_ref.c".}
{.compile: "./libs/aws-lc/crypto/kyber/kyber768r3_ref.c".}
{.compile: "./libs/aws-lc/crypto/kyber/kyber1024r3_ref.c".}
{.compile: "./libs/aws-lc/crypto/kyber/pqcrystals_kyber_ref_common/fips202.c".}
{.compile: "./libs/aws-lc/crypto/kyber/kem_kyber.c".}
{.compile: "./libs/aws-lc/crypto/lhash/lhash.c".}
{.compile: "./libs/aws-lc/crypto/mem.c".}
{.compile: "./libs/aws-lc/crypto/obj/obj.c".}
{.compile: "./libs/aws-lc/crypto/obj/obj_xref.c".}
# ocsp
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_asn.c".}
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_client.c".}
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_extension.c".}
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_http.c".}
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_lib.c".}
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_print.c".}
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_server.c".}
{.compile: "./libs/aws-lc/crypto/ocsp/ocsp_verify.c".}
# pem/pkcs7/pkcs8
{.compile: "./libs/aws-lc/crypto/pem/pem_all.c".}
{.compile: "./libs/aws-lc/crypto/pem/pem_info.c".}
{.compile: "./libs/aws-lc/crypto/pem/pem_lib.c".}
{.compile: "./libs/aws-lc/crypto/pem/pem_oth.c".}
{.compile: "./libs/aws-lc/crypto/pem/pem_pk8.c".}
{.compile: "./libs/aws-lc/crypto/pem/pem_pkey.c".}
{.compile: "./libs/aws-lc/crypto/pem/pem_x509.c".}
{.compile: "./libs/aws-lc/crypto/pem/pem_xaux.c".}
{.compile: "./libs/aws-lc/crypto/pkcs7/bio/cipher.c".}
{.compile: "./libs/aws-lc/crypto/pkcs7/pkcs7.c".}
{.compile: "./libs/aws-lc/crypto/pkcs7/pkcs7_asn1.c".}
{.compile: "./libs/aws-lc/crypto/pkcs7/pkcs7_x509.c".}
{.compile: "./libs/aws-lc/crypto/pkcs8/p5_pbev2.c".}
{.compile: "./libs/aws-lc/crypto/pkcs8/pkcs8.c".}
{.compile: "./libs/aws-lc/crypto/pkcs8/pkcs8_x509.c".}
# poly1305/rc4/rand/refcount/etc
{.compile: "./libs/aws-lc/crypto/poly1305/poly1305.c".}
{.compile: "./libs/aws-lc/crypto/poly1305/poly1305_arm.c".}
{.compile: "./libs/aws-lc/crypto/poly1305/poly1305_vec.c".}
{.compile: "./libs/aws-lc/crypto/pool/pool.c".}
{.compile: "./libs/aws-lc/crypto/rand_extra/ccrandomgeneratebytes.c".}
{.compile: "./libs/aws-lc/crypto/rand_extra/deterministic.c".}
{.compile: "./libs/aws-lc/crypto/rand_extra/getentropy.c".}
{.compile: "./libs/aws-lc/crypto/rand_extra/rand_extra.c".}
{.compile: "./libs/aws-lc/crypto/rand_extra/snapsafe_fallback.c".}
{.compile: "./libs/aws-lc/crypto/rand_extra/urandom.c".}
{.compile: "./libs/aws-lc/crypto/rand_extra/windows.c".}
{.compile: "./libs/aws-lc/crypto/rc4/rc4.c".}
{.compile: "./libs/aws-lc/crypto/refcount_c11.c".}
{.compile: "./libs/aws-lc/crypto/refcount_lock.c".}
{.compile: "./libs/aws-lc/crypto/refcount_win.c".}
# rsa extras
{.compile: "./libs/aws-lc/crypto/rsa_extra/rsa_asn1.c".}
{.compile: "./libs/aws-lc/crypto/rsa_extra/rsa_crypt.c".}
{.compile: "./libs/aws-lc/crypto/rsa_extra/rsa_print.c".}
{.compile: "./libs/aws-lc/crypto/rsa_extra/rsassa_pss_asn1.c".}
# stack/siphash/spake/thread/trust_token/ube
{.compile: "./libs/aws-lc/crypto/stack/stack.c".}
{.compile: "./libs/aws-lc/crypto/siphash/siphash.c".}
{.compile: "./libs/aws-lc/crypto/spake25519/spake25519.c".}
{.compile: "./libs/aws-lc/crypto/thread.c".}
{.compile: "./libs/aws-lc/crypto/thread_none.c".}
{.compile: "./libs/aws-lc/crypto/thread_pthread.c".}
{.compile: "./libs/aws-lc/crypto/thread_win.c".}
{.compile: "./libs/aws-lc/crypto/trust_token/pmbtoken.c".}
{.compile: "./libs/aws-lc/crypto/trust_token/trust_token.c".}
{.compile: "./libs/aws-lc/crypto/trust_token/voprf.c".}
{.compile: "./libs/aws-lc/crypto/ube/ube.c".}
{.compile: "./libs/aws-lc/crypto/ube/fork_detect.c".}
{.compile: "./libs/aws-lc/crypto/ube/snapsafe_detect.c".}
# x509
{.compile: "./libs/aws-lc/crypto/x509/a_digest.c".}
{.compile: "./libs/aws-lc/crypto/x509/a_sign.c".}
{.compile: "./libs/aws-lc/crypto/x509/a_verify.c".}
{.compile: "./libs/aws-lc/crypto/x509/algorithm.c".}
{.compile: "./libs/aws-lc/crypto/x509/asn1_gen.c".}
{.compile: "./libs/aws-lc/crypto/x509/by_dir.c".}
{.compile: "./libs/aws-lc/crypto/x509/by_file.c".}
{.compile: "./libs/aws-lc/crypto/x509/i2d_pr.c".}
{.compile: "./libs/aws-lc/crypto/x509/name_print.c".}
{.compile: "./libs/aws-lc/crypto/x509/policy.c".}
{.compile: "./libs/aws-lc/crypto/x509/rsa_pss.c".}
{.compile: "./libs/aws-lc/crypto/x509/t_crl.c".}
{.compile: "./libs/aws-lc/crypto/x509/t_req.c".}
{.compile: "./libs/aws-lc/crypto/x509/t_x509.c".}
{.compile: "./libs/aws-lc/crypto/x509/t_x509a.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_akey.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_akeya.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_alt.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_bcons.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_bitst.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_conf.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_cpols.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_crld.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_enum.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_extku.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_genn.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_ia5.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_info.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_int.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_lib.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_ncons.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_ocsp.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_pcons.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_pmaps.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_prn.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_purp.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_skey.c".}
{.compile: "./libs/aws-lc/crypto/x509/v3_utl.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_algor.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_all.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_attrib.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_crl.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_exten.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_name.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_pubkey.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_req.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_sig.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_spki.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_val.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_x509.c".}
{.compile: "./libs/aws-lc/crypto/x509/x_x509a.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_att.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_cmp.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_d2.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_def.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_ext.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_lu.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_obj.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_req.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_set.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_trs.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_txt.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_v3.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_vfy.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509_vpm.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509cset.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509name.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509rset.c".}
{.compile: "./libs/aws-lc/crypto/x509/x509spki.c".}
# ----- ssl (c++ except one .c) -----
{.compile: "./libs/aws-lc/ssl/bio_ssl.cc".}
{.compile: "./libs/aws-lc/ssl/custom_extensions.cc".}
{.compile: "./libs/aws-lc/ssl/d1_both.cc".}
{.compile: "./libs/aws-lc/ssl/d1_lib.cc".}
{.compile: "./libs/aws-lc/ssl/d1_pkt.cc".}
{.compile: "./libs/aws-lc/ssl/d1_srtp.cc".}
{.compile: "./libs/aws-lc/ssl/dtls_method.cc".}
{.compile: "./libs/aws-lc/ssl/dtls_record.cc".}
{.compile: "./libs/aws-lc/ssl/encrypted_client_hello.cc".}
{.compile: "./libs/aws-lc/ssl/extensions.cc".}
{.compile: "./libs/aws-lc/ssl/handoff.cc".}
{.compile: "./libs/aws-lc/ssl/handshake.cc".}
{.compile: "./libs/aws-lc/ssl/handshake_client.cc".}
{.compile: "./libs/aws-lc/ssl/handshake_server.cc".}
{.compile: "./libs/aws-lc/ssl/s3_both.cc".}
{.compile: "./libs/aws-lc/ssl/s3_lib.cc".}
{.compile: "./libs/aws-lc/ssl/s3_pkt.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_aead_ctx.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_asn1.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_buffer.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_cert.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_cipher.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_decrepit.c".}
{.compile: "./libs/aws-lc/ssl/ssl_file.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_key_share.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_lib.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_privkey.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_session.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_stat.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_text.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_transcript.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_transfer_asn1.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_versions.cc".}
{.compile: "./libs/aws-lc/ssl/ssl_x509.cc".}
{.compile: "./libs/aws-lc/ssl/t1_enc.cc".}
{.compile: "./libs/aws-lc/ssl/tls_method.cc".}
{.compile: "./libs/aws-lc/ssl/tls_record.cc".}
{.compile: "./libs/aws-lc/ssl/tls13_both.cc".}
{.compile: "./libs/aws-lc/ssl/tls13_client.cc".}
{.compile: "./libs/aws-lc/ssl/tls13_enc.cc".}
{.compile: "./libs/aws-lc/ssl/tls13_server.cc".}
# decrepit (still referenced)
{.compile: "./libs/aws-lc/crypto/decrepit/bio/base64_bio.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/blowfish/blowfish.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/cast/cast.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/cast/cast_tables.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/cfb/cfb.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/dh/dh_decrepit.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/evp/evp_do_all.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/obj/obj_decrepit.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/ripemd/ripemd.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/rsa/rsa_decrepit.c".}
{.compile: "./libs/aws-lc/crypto/decrepit/x509/x509_decrepit.c".}

309
boringssl.nim Normal file
View File

@@ -0,0 +1,309 @@
# libcrypto + libssl sources without cmake, no-asm, no fips, no tests, tools
# TODO: look into use assembly files for perf
# ----- toolchain + includes -----
{.passc: "-DBORINGSSL_IMPLEMENTATION -DOPENSSL_NO_ASM -DS2N_BN_HIDE_SYMBOLS".}
{.localPassC: "-ffunction-sections -fdata-sections -fno-exceptions -fno-rtti".}
{.passc: "-I./libs/boringssl/include".}
when not defined(release):
{.localPassC: "-DNDEBUG".}
# link stdc++/pthread as needed
when defined(macosx):
{.localPassC: "-lc++".}
elif defined(linux):
{.localPassC: "-D_XOPEN_SOURCE=700".}
{.localPassC: "-lstdc++".}
elif defined(windows):
{.
localPassC:
"-D_HAS_EXCEPTIONS=0 -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS"
.}
# ----- generated sources -----
{.compile: "./libs/boringssl/crypto/fipsmodule/bcm.cc".}
{.compile: "./libs/boringssl/crypto/aes/aes.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_bitstr.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_bool.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_d2i_fp.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_dup.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_gentm.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_i2d_fp.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_int.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_mbstr.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_object.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_octet.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_strex.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_strnid.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_time.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_type.cc".}
{.compile: "./libs/boringssl/crypto/asn1/a_utctm.cc".}
{.compile: "./libs/boringssl/crypto/asn1/asn1_lib.cc".}
{.compile: "./libs/boringssl/crypto/asn1/asn1_par.cc".}
{.compile: "./libs/boringssl/crypto/asn1/asn_pack.cc".}
{.compile: "./libs/boringssl/crypto/asn1/f_int.cc".}
{.compile: "./libs/boringssl/crypto/asn1/f_string.cc".}
{.compile: "./libs/boringssl/crypto/asn1/posix_time.cc".}
{.compile: "./libs/boringssl/crypto/asn1/tasn_dec.cc".}
{.compile: "./libs/boringssl/crypto/asn1/tasn_enc.cc".}
{.compile: "./libs/boringssl/crypto/asn1/tasn_fre.cc".}
{.compile: "./libs/boringssl/crypto/asn1/tasn_new.cc".}
{.compile: "./libs/boringssl/crypto/asn1/tasn_typ.cc".}
{.compile: "./libs/boringssl/crypto/asn1/tasn_utl.cc".}
{.compile: "./libs/boringssl/crypto/base64/base64.cc".}
{.compile: "./libs/boringssl/crypto/bio/bio.cc".}
{.compile: "./libs/boringssl/crypto/bio/bio_mem.cc".}
{.compile: "./libs/boringssl/crypto/bio/connect.cc".}
{.compile: "./libs/boringssl/crypto/bio/errno.cc".}
{.compile: "./libs/boringssl/crypto/bio/fd.cc".}
{.compile: "./libs/boringssl/crypto/bio/file.cc".}
{.compile: "./libs/boringssl/crypto/bio/hexdump.cc".}
{.compile: "./libs/boringssl/crypto/bio/pair.cc".}
{.compile: "./libs/boringssl/crypto/bio/printf.cc".}
{.compile: "./libs/boringssl/crypto/bio/socket.cc".}
{.compile: "./libs/boringssl/crypto/bio/socket_helper.cc".}
{.compile: "./libs/boringssl/crypto/blake2/blake2.cc".}
{.compile: "./libs/boringssl/crypto/bn/bn_asn1.cc".}
{.compile: "./libs/boringssl/crypto/bn/convert.cc".}
{.compile: "./libs/boringssl/crypto/bn/div.cc".}
{.compile: "./libs/boringssl/crypto/bn/exponentiation.cc".}
{.compile: "./libs/boringssl/crypto/bn/sqrt.cc".}
{.compile: "./libs/boringssl/crypto/buf/buf.cc".}
{.compile: "./libs/boringssl/crypto/bytestring/asn1_compat.cc".}
{.compile: "./libs/boringssl/crypto/bytestring/ber.cc".}
{.compile: "./libs/boringssl/crypto/bytestring/cbb.cc".}
{.compile: "./libs/boringssl/crypto/bytestring/cbs.cc".}
{.compile: "./libs/boringssl/crypto/bytestring/unicode.cc".}
{.compile: "./libs/boringssl/crypto/chacha/chacha.cc".}
{.compile: "./libs/boringssl/crypto/cipher/derive_key.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_aesctrhmac.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_aeseax.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_aesgcmsiv.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_chacha20poly1305.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_des.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_null.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_rc2.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_rc4.cc".}
{.compile: "./libs/boringssl/crypto/cipher/e_tls.cc".}
{.compile: "./libs/boringssl/crypto/cipher/get_cipher.cc".}
{.compile: "./libs/boringssl/crypto/cipher/tls_cbc.cc".}
{.compile: "./libs/boringssl/crypto/cms/cms.cc".}
{.compile: "./libs/boringssl/crypto/conf/conf.cc".}
{.compile: "./libs/boringssl/crypto/cpu_aarch64_apple.cc".}
{.compile: "./libs/boringssl/crypto/cpu_aarch64_fuchsia.cc".}
{.compile: "./libs/boringssl/crypto/cpu_aarch64_linux.cc".}
{.compile: "./libs/boringssl/crypto/cpu_aarch64_openbsd.cc".}
{.compile: "./libs/boringssl/crypto/cpu_aarch64_sysreg.cc".}
{.compile: "./libs/boringssl/crypto/cpu_aarch64_win.cc".}
{.compile: "./libs/boringssl/crypto/cpu_arm_freebsd.cc".}
{.compile: "./libs/boringssl/crypto/cpu_arm_linux.cc".}
{.compile: "./libs/boringssl/crypto/cpu_intel.cc".}
{.compile: "./libs/boringssl/crypto/crypto.cc".}
{.compile: "./libs/boringssl/crypto/curve25519/curve25519.cc".}
{.compile: "./libs/boringssl/crypto/curve25519/curve25519_64_adx.cc".}
{.compile: "./libs/boringssl/crypto/curve25519/spake25519.cc".}
{.compile: "./libs/boringssl/crypto/des/des.cc".}
{.compile: "./libs/boringssl/crypto/dh/dh_asn1.cc".}
{.compile: "./libs/boringssl/crypto/dh/params.cc".}
{.compile: "./libs/boringssl/crypto/digest/digest_extra.cc".}
{.compile: "./libs/boringssl/crypto/dsa/dsa.cc".}
{.compile: "./libs/boringssl/crypto/dsa/dsa_asn1.cc".}
{.compile: "./libs/boringssl/crypto/ec/ec_asn1.cc".}
{.compile: "./libs/boringssl/crypto/ec/ec_derive.cc".}
{.compile: "./libs/boringssl/crypto/ec/hash_to_curve.cc".}
{.compile: "./libs/boringssl/crypto/ecdh/ecdh.cc".}
{.compile: "./libs/boringssl/crypto/ecdsa/ecdsa_asn1.cc".}
{.compile: "./libs/boringssl/crypto/ecdsa/ecdsa_p1363.cc".}
{.compile: "./libs/boringssl/crypto/engine/engine.cc".}
{.compile: "./libs/boringssl/crypto/err/err.cc".}
{.compile: "./libs/boringssl/crypto/evp/evp.cc".}
{.compile: "./libs/boringssl/crypto/evp/evp_asn1.cc".}
{.compile: "./libs/boringssl/crypto/evp/evp_ctx.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_dh.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_dh_asn1.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_dsa_asn1.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_ec.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_ec_asn1.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_ed25519.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_ed25519_asn1.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_hkdf.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_rsa.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_rsa_asn1.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_x25519.cc".}
{.compile: "./libs/boringssl/crypto/evp/p_x25519_asn1.cc".}
{.compile: "./libs/boringssl/crypto/evp/pbkdf.cc".}
{.compile: "./libs/boringssl/crypto/evp/print.cc".}
{.compile: "./libs/boringssl/crypto/evp/scrypt.cc".}
{.compile: "./libs/boringssl/crypto/evp/sign.cc".}
{.compile: "./libs/boringssl/crypto/ex_data.cc".}
{.compile: "./libs/boringssl/crypto/fipsmodule/fips_shared_support.cc".}
{.compile: "./libs/boringssl/crypto/fuzzer_mode.cc".}
{.compile: "./libs/boringssl/crypto/hpke/hpke.cc".}
{.compile: "./libs/boringssl/crypto/hrss/hrss.cc".}
{.compile: "./libs/boringssl/crypto/kyber/kyber.cc".}
{.compile: "./libs/boringssl/crypto/lhash/lhash.cc".}
{.compile: "./libs/boringssl/crypto/md4/md4.cc".}
{.compile: "./libs/boringssl/crypto/md5/md5.cc".}
{.compile: "./libs/boringssl/crypto/mem.cc".}
{.compile: "./libs/boringssl/crypto/mldsa/mldsa.cc".}
{.compile: "./libs/boringssl/crypto/mlkem/mlkem.cc".}
{.compile: "./libs/boringssl/crypto/obj/obj.cc".}
{.compile: "./libs/boringssl/crypto/obj/obj_xref.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_all.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_info.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_lib.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_oth.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_pk8.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_pkey.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_x509.cc".}
{.compile: "./libs/boringssl/crypto/pem/pem_xaux.cc".}
{.compile: "./libs/boringssl/crypto/pkcs7/pkcs7.cc".}
{.compile: "./libs/boringssl/crypto/pkcs7/pkcs7_x509.cc".}
{.compile: "./libs/boringssl/crypto/pkcs8/p5_pbev2.cc".}
{.compile: "./libs/boringssl/crypto/pkcs8/pkcs8.cc".}
{.compile: "./libs/boringssl/crypto/pkcs8/pkcs8_x509.cc".}
{.compile: "./libs/boringssl/crypto/poly1305/poly1305.cc".}
{.compile: "./libs/boringssl/crypto/poly1305/poly1305_arm.cc".}
{.compile: "./libs/boringssl/crypto/poly1305/poly1305_vec.cc".}
{.compile: "./libs/boringssl/crypto/pool/pool.cc".}
{.compile: "./libs/boringssl/crypto/rand/deterministic.cc".}
{.compile: "./libs/boringssl/crypto/rand/fork_detect.cc".}
{.compile: "./libs/boringssl/crypto/rand/forkunsafe.cc".}
{.compile: "./libs/boringssl/crypto/rand/getentropy.cc".}
{.compile: "./libs/boringssl/crypto/rand/ios.cc".}
{.compile: "./libs/boringssl/crypto/rand/passive.cc".}
{.compile: "./libs/boringssl/crypto/rand/rand.cc".}
{.compile: "./libs/boringssl/crypto/rand/trusty.cc".}
{.compile: "./libs/boringssl/crypto/rand/urandom.cc".}
{.compile: "./libs/boringssl/crypto/rand/windows.cc".}
{.compile: "./libs/boringssl/crypto/rc4/rc4.cc".}
{.compile: "./libs/boringssl/crypto/refcount.cc".}
{.compile: "./libs/boringssl/crypto/rsa/rsa_asn1.cc".}
{.compile: "./libs/boringssl/crypto/rsa/rsa_crypt.cc".}
{.compile: "./libs/boringssl/crypto/rsa/rsa_extra.cc".}
{.compile: "./libs/boringssl/crypto/rsa/rsa_print.cc".}
{.compile: "./libs/boringssl/crypto/sha/sha1.cc".}
{.compile: "./libs/boringssl/crypto/sha/sha256.cc".}
{.compile: "./libs/boringssl/crypto/sha/sha512.cc".}
{.compile: "./libs/boringssl/crypto/siphash/siphash.cc".}
{.compile: "./libs/boringssl/crypto/slhdsa/slhdsa.cc".}
{.compile: "./libs/boringssl/crypto/spake2plus/spake2plus.cc".}
{.compile: "./libs/boringssl/crypto/stack/stack.cc".}
{.compile: "./libs/boringssl/crypto/thread.cc".}
{.compile: "./libs/boringssl/crypto/thread_none.cc".}
{.compile: "./libs/boringssl/crypto/thread_pthread.cc".}
{.compile: "./libs/boringssl/crypto/thread_win.cc".}
{.compile: "./libs/boringssl/crypto/trust_token/pmbtoken.cc".}
{.compile: "./libs/boringssl/crypto/trust_token/trust_token.cc".}
{.compile: "./libs/boringssl/crypto/trust_token/voprf.cc".}
{.compile: "./libs/boringssl/crypto/x509/a_digest.cc".}
{.compile: "./libs/boringssl/crypto/x509/a_sign.cc".}
{.compile: "./libs/boringssl/crypto/x509/a_verify.cc".}
{.compile: "./libs/boringssl/crypto/x509/algorithm.cc".}
{.compile: "./libs/boringssl/crypto/x509/asn1_gen.cc".}
{.compile: "./libs/boringssl/crypto/x509/by_dir.cc".}
{.compile: "./libs/boringssl/crypto/x509/by_file.cc".}
{.compile: "./libs/boringssl/crypto/x509/i2d_pr.cc".}
{.compile: "./libs/boringssl/crypto/x509/name_print.cc".}
{.compile: "./libs/boringssl/crypto/x509/policy.cc".}
{.compile: "./libs/boringssl/crypto/x509/rsa_pss.cc".}
{.compile: "./libs/boringssl/crypto/x509/t_crl.cc".}
{.compile: "./libs/boringssl/crypto/x509/t_req.cc".}
{.compile: "./libs/boringssl/crypto/x509/t_x509.cc".}
{.compile: "./libs/boringssl/crypto/x509/t_x509a.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_akey.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_akeya.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_alt.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_bcons.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_bitst.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_conf.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_cpols.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_crld.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_enum.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_extku.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_genn.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_ia5.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_info.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_int.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_lib.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_ncons.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_ocsp.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_pcons.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_pmaps.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_prn.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_purp.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_skey.cc".}
{.compile: "./libs/boringssl/crypto/x509/v3_utl.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_att.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_cmp.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_d2.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_def.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_ext.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_lu.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_obj.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_req.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_set.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_trs.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_txt.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_v3.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_vfy.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509_vpm.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509cset.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509name.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509rset.cc".}
{.compile: "./libs/boringssl/crypto/x509/x509spki.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_algor.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_all.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_attrib.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_crl.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_exten.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_name.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_pubkey.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_req.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_sig.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_spki.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_x509.cc".}
{.compile: "./libs/boringssl/crypto/x509/x_x509a.cc".}
{.compile: "./libs/boringssl/crypto/xwing/xwing.cc".}
{.compile: "./libs/boringssl/gen/crypto//err_data.cc".}
{.compile: "./libs/boringssl/ssl/bio_ssl.cc".}
{.compile: "./libs/boringssl/ssl/d1_both.cc".}
{.compile: "./libs/boringssl/ssl/d1_lib.cc".}
{.compile: "./libs/boringssl/ssl/d1_pkt.cc".}
{.compile: "./libs/boringssl/ssl/d1_srtp.cc".}
{.compile: "./libs/boringssl/ssl/dtls_method.cc".}
{.compile: "./libs/boringssl/ssl/dtls_record.cc".}
{.compile: "./libs/boringssl/ssl/encrypted_client_hello.cc".}
{.compile: "./libs/boringssl/ssl/extensions.cc".}
{.compile: "./libs/boringssl/ssl/handoff.cc".}
{.compile: "./libs/boringssl/ssl/handshake.cc".}
{.compile: "./libs/boringssl/ssl/handshake_client.cc".}
{.compile: "./libs/boringssl/ssl/handshake_server.cc".}
{.compile: "./libs/boringssl/ssl/s3_both.cc".}
{.compile: "./libs/boringssl/ssl/s3_lib.cc".}
{.compile: "./libs/boringssl/ssl/s3_pkt.cc".}
{.compile: "./libs/boringssl/ssl/ssl_aead_ctx.cc".}
{.compile: "./libs/boringssl/ssl/ssl_asn1.cc".}
{.compile: "./libs/boringssl/ssl/ssl_buffer.cc".}
{.compile: "./libs/boringssl/ssl/ssl_cert.cc".}
{.compile: "./libs/boringssl/ssl/ssl_cipher.cc".}
{.compile: "./libs/boringssl/ssl/ssl_credential.cc".}
{.compile: "./libs/boringssl/ssl/ssl_file.cc".}
{.compile: "./libs/boringssl/ssl/ssl_key_share.cc".}
{.compile: "./libs/boringssl/ssl/ssl_lib.cc".}
{.compile: "./libs/boringssl/ssl/ssl_privkey.cc".}
{.compile: "./libs/boringssl/ssl/ssl_session.cc".}
{.compile: "./libs/boringssl/ssl/ssl_stat.cc".}
{.compile: "./libs/boringssl/ssl/ssl_transcript.cc".}
{.compile: "./libs/boringssl/ssl/ssl_versions.cc".}
{.compile: "./libs/boringssl/ssl/ssl_x509.cc".}
{.compile: "./libs/boringssl/ssl/t1_enc.cc".}
{.compile: "./libs/boringssl/ssl/tls13_both.cc".}
{.compile: "./libs/boringssl/ssl/tls13_client.cc".}
{.compile: "./libs/boringssl/ssl/tls13_enc.cc".}
{.compile: "./libs/boringssl/ssl/tls13_server.cc".}
{.compile: "./libs/boringssl/ssl/tls_method.cc".}
{.compile: "./libs/boringssl/ssl/tls_record.cc".}
{.compile: "./libs/boringssl/decrepit/x509/x509_decrepit.cc".}

67
diff1 Normal file
View File

@@ -0,0 +1,67 @@
diff --git a/crypto/x509/x509name.cc b/crypto/x509/x509name.cc
index 72c88834b..97966b518 100644
--- a/crypto/x509/x509name.cc
+++ b/crypto/x509/x509name.cc
@@ -21,7 +21,7 @@
#include <openssl/obj.h>
#include <openssl/stack.h>
#include <openssl/x509.h>
-
+#include <iostream>
#include "../internal.h"
#include "internal.h"
@@ -182,12 +182,17 @@ int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,
int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type,
const unsigned char *bytes, ossl_ssize_t len,
int loc, int set) {
- X509_NAME_ENTRY *ne =
+ std::cout << "HERE" << std::endl;
+
+ X509_NAME_ENTRY *ne =
X509_NAME_ENTRY_create_by_txt(NULL, field, type, bytes, len);
if (!ne) {
+ std::cout << "FAIL1" << std::endl;
return 0;
}
int ret = X509_NAME_add_entry(name, ne, loc, set);
+ std::cout << "THE RET2: " << ret << std::endl;
+
X509_NAME_ENTRY_free(ne);
return ret;
}
@@ -197,11 +202,13 @@ int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type,
int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *entry, int loc,
int set) {
if (name == nullptr) {
+ std::cout << "FAIL3" << std::endl;
return 0;
}
if (name->entries == nullptr) {
name->entries = sk_X509_NAME_ENTRY_new_null();
if (name->entries == nullptr) {
+ std::cout << "FAIL4" << std::endl;
return 0;
}
}
@@ -238,10 +245,12 @@ int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *entry, int loc,
bssl::UniquePtr<X509_NAME_ENTRY> new_entry(X509_NAME_ENTRY_dup(entry));
if (new_entry == nullptr) {
+ std::cout << "FAIL5" << std::endl;
return 0;
}
new_entry->set = set;
if (!sk_X509_NAME_ENTRY_insert(sk, new_entry.get(), loc)) {
+ std::cout << "FAIL6" << std::endl;
return 0;
}
new_entry.release(); // |sk| took ownership.
@@ -263,6 +272,7 @@ X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne,
obj = OBJ_txt2obj(field, 0);
if (obj == NULL) {
+ std::cout << "FAIL2" << std::endl;
OPENSSL_PUT_ERROR(X509, X509_R_INVALID_FIELD_NAME);
ERR_add_error_data(2, "name=", field);
return NULL;

View File

@@ -6,7 +6,7 @@ importc:
path currentSourcePath.parentDir / "libs/ngtcp2/lib/includes"
path currentSourcePath.parentDir / "build/lib/includes"
path currentSourcePath.parentDir / "libs/ngtcp2/crypto/includes"
path currentSourcePath.parentDir / "libs/aws-lc/include"
path currentSourcePath.parentDir / "libs/boringssl/include"
rename FILE, CFile # Rename `FILE` that STB uses to `CFile` which is the Nim equivalent
"ngtcp2/ngtcp2.h"
"ngtcp2/ngtcp2_crypto.h"

View File

@@ -1,25 +0,0 @@
# ----- toolchain + includes -----
{.passc: "-I./libs/aws-lc/third_party/jitterentropy/jitterentropy-library".}
{.localPassC: "-ffunction-sections -fdata-sections".}
{.localPassC: "-O0".}
{.
compile:
"./libs/aws-lc/third_party/jitterentropy/jitterentropy-library/src/jitterentropy-base.c"
.}
{.
compile:
"./libs/aws-lc/third_party/jitterentropy/jitterentropy-library/src/jitterentropy-sha3.c"
.}
{.
compile:
"./libs/aws-lc/third_party/jitterentropy/jitterentropy-library/src/jitterentropy-health.c"
.}
{.
compile:
"./libs/aws-lc/third_party/jitterentropy/jitterentropy-library/src/jitterentropy-noise.c"
.}
{.
compile:
"./libs/aws-lc/third_party/jitterentropy/jitterentropy-library/src/jitterentropy-gcd.c"
.}

Submodule libs/aws-lc deleted from 8ca0b29b14

1
libs/boringssl Submodule

Submodule libs/boringssl added at db1a845616

68837
ngtcp2.nim

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ author = "Status Research & Development GmbH"
description = "Nim wrapper around the ngtcp2 library"
license = "MIT"
installDirs = @["libs", "build"]
installFiles = @["ngtcp2.nim", "awslc.nim", "jitterentropy.nim"]
installFiles = @["ngtcp2.nim", "boringssl.nim"]
requires "nim >= 2.0.0"

View File

@@ -1,10 +1,12 @@
import os
import strformat, strutils
import ./awslc
import ./boringssl
# Socket definitions
import nativesockets
type ptrdiff_t* {.importc: "ptrdiff_t", header: "<stddef.h>".} = int
{.passc: "-DNGTCP2_STATICLIB".}
when defined(windows):
@@ -20,17 +22,14 @@ const ngtcp2Crypto = root / "libs/ngtcp2/crypto"
const ngtcp2CryptoIncludes = root / "libs/ngtcp2/crypto/includes"
const ngtcp2Lib = root / "libs/ngtcp2/lib"
const ngtcp2LibIncludes = root / "libs/ngtcp2/lib/includes"
const awsLcInclude = root / "libs/aws-lc/include"
const jitterEntropy =
root / "libs/aws-lc/third_party/jitterentropy/jitterentropy-library"
const boringsslInclude = root / "libs/boringssl/include"
{.passc: fmt"-I{libIncludes}".}
{.passc: fmt"-I{ngtcp2Crypto}".}
{.passc: fmt"-I{ngtcp2CryptoIncludes}".}
{.passc: fmt"-I{ngtcp2Lib}".}
{.passc: fmt"-I{ngtcp2LibIncludes}".}
{.passc: fmt"-I{awsLcInclude}".}
{.passc: fmt"-I{jitterEntropy}".}
{.passc: fmt"-I{boringsslInclude}".}
when defined(ngtcp2_enable_quictls):
# QuicTLS/OpenSSL crypto support

View File

@@ -12,7 +12,7 @@ test "default settings":
)
check transport_params.active_connection_id_limit > 0
test "AWS-LC bindings":
test "BoringSSL bindings":
let
clientMethod = TLS_client_method()
ssl_ctx = SSL_CTX_new(clientMethod)